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中变量交换的例子
Aug 25 Python
Python中使用Flask、MongoDB搭建简易图片服务器
Feb 04 Python
Django中实现点击图片链接强制直接下载的方法
May 14 Python
Python编写电话薄实现增删改查功能
May 07 Python
Python中元组,列表,字典的区别
May 21 Python
PyTorch搭建一维线性回归模型(二)
May 22 Python
python ChainMap 合并字典的实现步骤
Jun 11 Python
关于pandas的离散化,面元划分详解
Nov 22 Python
python3中数组逆序输出方法
Dec 01 Python
Python获取指定网段正在使用的IP
Dec 14 Python
plt.figure()参数使用详解及运行演示
Jan 08 Python
教你用Python爬取英雄联盟皮肤原画
Jun 13 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
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
PHP用continue跳过本次循环中剩余代码的注意点
2017/06/27 PHP
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(下:动画篇)
2010/03/24 Javascript
JS按回车键实现登录的方法
2014/08/25 Javascript
自定义百度分享的分享按钮
2015/03/18 Javascript
jquery实现向下滑出的二级导航下滑菜单效果
2015/08/25 Javascript
js和C# 时间日期格式转换的简单实例
2016/05/28 Javascript
JavaScript实战之带收放动画效果的导航菜单
2016/08/16 Javascript
解决React Native端口号修改的方法
2017/07/28 Javascript
微信小程序 按钮滑动的实现方法
2017/09/27 Javascript
JS中Promise函数then的奥秘探究
2018/07/30 Javascript
Web安全之XSS攻击与防御小结
2018/12/13 Javascript
vue-cli的build的文件夹下没有dev-server.js文件配置mock数据的方法
2019/04/17 Javascript
vue实现权限控制路由(vue-router 动态添加路由)
2019/11/04 Javascript
JS面向对象之多选框实现
2020/01/17 Javascript
javascript将16进制的字符串转换为10进制整数hex
2020/03/05 Javascript
JavaScript 函数用法详解【函数定义、参数、绑定、作用域、闭包等】
2020/05/12 Javascript
JS异步宏队列微队列原理详解
2020/09/09 Javascript
[06:43]2018DOTA2国际邀请赛寻真——VGJ.Thunder
2018/08/11 DOTA
jupyter notebook 恢复误删单元格或者历史代码的实现
2020/04/17 Python
Pyinstaller加密打包应用的示例代码
2020/06/11 Python
基于TensorFlow的CNN实现Mnist手写数字识别
2020/06/17 Python
Python3如何使用tabulate打印数据
2020/09/25 Python
详解HTML5中download属性的应用
2015/08/06 HTML / CSS
使用canvas压缩图片上传的方法示例
2020/02/07 HTML / CSS
Omio西班牙:全欧洲低价大巴、火车和航班搜索和比价
2017/02/11 全球购物
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
Guess欧洲官网:美国服饰品牌
2019/08/06 全球购物
乌克兰在线药房:Аптека24
2019/10/30 全球购物
高级方案规划工程师岗位职责
2013/11/29 职场文书
街道社区活动报告
2015/02/05 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
初三语文教学反思
2016/03/03 职场文书
未来,这5大方向都很适合创业
2019/07/22 职场文书
关于拾金不昧的感谢信(五篇)
2019/10/18 职场文书
浅谈css实现背景颜色半透明的两种方法
2021/12/06 HTML / CSS