Django配置跨域并开发测试接口


Posted in Python onNovember 04, 2020

1.跨域原理

1. 首先浏览器安全策略限制js ajax跨域访问服务器

2. 如果服务器返回的头部信息中有当前域:

// 允许 http://localhost:8080 这个网站打开的页面中的js访问我
Access-Control-Allow-Origin: http://localhost:8080
// 允许携带cookie访问我
Access-Control-Allow-Credentials: true

那么, 浏览器可以让js 请求该服务器

Django配置跨域并开发测试接口

2.django cors设置:

1. 安装包
pip install django-cors-headers
2. 注册应用
INSTALLED_APPS = [
...
# 添加 django-cors-headers 使其可以进行 cors 跨域
'corsheaders'
]
3. 添加中间件
MIDDLEWARE = [
# 放在中间件第一个
'corsheaders.middleware.CorsMiddleware',
...
]
4. 设置
# CORS跨域请求白名单设置
CORS_ORIGIN_WHITELIST = (
'http://127.0.0.1:8080',
'http://localhost:8080',
)
CORS_ALLOW_CREDENTIALS = True # 允许携带cookie

3.登录接口测试

3.1 user/usrs.py 中配置路由

urlpatterns = [
path('login/', views.login),
]

3.2 user/views.py 中写一个login视图函数

from django.http import JsonResponse
import json
def login(request):
body_dict = json.loads( request.body )

print(body_dict,8888888)

name = body_dict.get('name')

pwd = body_dict.get('pwd')

if not all([name, pwd]):


resp = {


"code": 1001,


"msg": '信息不全'


}


return JsonResponse(resp)

if name == 'zhangsan' and pwd == '123456':


resp = {



"code": 0,



"msg": '登录成功',



"data": {



"id": 1,



"name": '张三',



"age": 18



}


}


return JsonResponse(resp)

return JsonResponse({


"code": 1002,


"msg": '验证失败'

})

3.3 测试接口

1http://192.168.56.100:8888/user/login/

Django配置跨域并开发测试接口

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的词法分析与语法分析
May 18 Python
Python中的并发编程实例
Jul 07 Python
python实现删除文件与目录的方法
Nov 10 Python
Python使用chardet判断字符编码
May 09 Python
Python实现爬取逐浪小说的方法
Jul 07 Python
Java多线程编程中ThreadLocal类的用法及深入
Jun 21 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
Dec 27 Python
python读取文件名并改名字的实例
Jan 07 Python
Django 实现admin后台显示图片缩略图的例子
Jul 28 Python
浅谈Python 敏感词过滤的实现
Aug 15 Python
Python实现打印实心和空心菱形
Nov 23 Python
浅谈Python中的函数(def)及参数传递操作
May 25 Python
Python基于Serializer实现字段验证及序列化
Nov 04 #Python
pycharm使用技巧之自动调整代码格式总结
Nov 04 #Python
利用Python pandas对Excel进行合并的方法示例
Nov 04 #Python
Python实现冒泡排序算法的完整实例
Nov 04 #Python
Lombok插件安装(IDEA)及配置jar包使用详解
Nov 04 #Python
基于OpenCV的路面质量检测的实现
Nov 04 #Python
Pycharm同步远程服务器调试的方法步骤
Nov 04 #Python
You might like
PHP伪静态写法附代码
2008/06/20 PHP
如何使用php绘制在图片上的正余弦曲线
2013/06/08 PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
2014/06/12 PHP
PHP中上传多个文件的表单设计例子
2014/11/19 PHP
php中文验证码实现方法
2015/06/18 PHP
PHP针对字符串开头和结尾的判断方法
2016/07/11 PHP
PHP常用函数之根据生日计算年龄功能示例
2019/10/21 PHP
禁止刷新,回退的JS
2006/11/25 Javascript
functional继承模式 摘自javascript:the good parts
2011/06/20 Javascript
jQuery EasyUI API 中文文档 - Spinner微调器使用
2011/10/21 Javascript
jquery1.83 之前所有与异步列队相关的模块详细介绍
2012/11/13 Javascript
js中的push和join方法使用介绍
2013/10/08 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
2015/03/31 Javascript
JavaScript字符串删除重复字符的方法
2015/12/25 Javascript
Bootstrap CSS布局之表格
2016/12/17 Javascript
vue实现点击关注后及时更新列表功能
2018/06/26 Javascript
详解nodejs http请求相关总结
2019/03/31 NodeJs
深入了解JavaScript 私有化
2019/05/30 Javascript
解决vue项目axios每次请求session不一致的问题
2020/10/24 Javascript
[47:43]完美世界DOTA2联赛PWL S3 Magama vs GXR 第二场 12.19
2020/12/24 DOTA
python查询sqlite数据表的方法
2015/05/08 Python
如何将python中的List转化成dictionary
2016/08/15 Python
使用Python实现租车计费系统的两种方法
2018/09/29 Python
python 中的9个实用技巧,助你提高开发效率
2020/08/30 Python
Python更改pip镜像源的方法示例
2020/12/01 Python
草莓网化妆品日本站:Strawberrynet日本
2017/10/20 全球购物
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
巴西最大的玩具连锁店:Ri Happy
2020/06/17 全球购物
shell变量的作用空间是什么
2013/08/17 面试题
应征英语教师求职信
2013/11/27 职场文书
《童趣》教学反思
2014/02/19 职场文书
小学语文国培感言
2014/03/04 职场文书
2020年元旦祝福语录,总有适合你的
2019/12/31 职场文书
MySQL安装后默认自带数据库的作用详解
2021/04/27 MySQL
python之django路由和视图案例教程
2021/07/26 Python
《吸血鬼:避世 血猎》官宣4.27发售 系列首款大逃杀
2022/04/03 其他游戏