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创建一个最简单http webserver服务器的方法
May 08 Python
python通过opencv实现批量剪切图片
Nov 13 Python
简单实现python收发邮件功能
Jan 05 Python
Tensorflow卷积神经网络实例进阶
May 24 Python
Django+Ajax+jQuery实现网页动态更新的实例
May 28 Python
python查看模块安装位置的方法
Oct 16 Python
python模拟登陆,用session维持回话的实例
Dec 27 Python
pycharm 安装JPype的教程
Aug 08 Python
使用Python第三方库pygame写个贪吃蛇小游戏
Mar 06 Python
python初步实现word2vec操作
Jun 09 Python
python Gabor滤波器讲解
Oct 26 Python
关于python pygame游戏进行声音添加的技巧
Oct 24 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中防止SQL注入实现代码
2011/02/19 PHP
php树型类实例
2014/12/05 PHP
php中magic_quotes_gpc对unserialize的影响分析
2014/12/16 PHP
php获取字符串前几位的实例(substr返回字符串的子串用法)
2017/03/08 PHP
php str_getcsv把字符串解析为数组的实现方法
2017/04/05 PHP
ThinkPHP中create()方法自动验证实例
2017/04/26 PHP
jquery插件bxslider用法实例分析
2015/04/16 Javascript
使用Raygun来自动追踪AngularJS中的异常
2015/06/23 Javascript
js基于cookie方式记住返回页面用法示例
2016/05/27 Javascript
微信开发 使用picker封装省市区三级联动模板
2016/10/28 Javascript
如何在 Vue.js 中使用第三方js库
2017/04/25 Javascript
jQuery实现点击下拉框中的值累加到文本框中的方法示例
2017/10/28 jQuery
Angular4集成ng2-file-upload的上传组件
2018/03/14 Javascript
详解keep-alive + vuex 让缓存的页面灵活起来
2019/04/19 Javascript
用Vue.js方法创建模板并使用多个模板合成
2019/06/28 Javascript
Android 自定义view仿微信相机单击拍照长按录视频按钮
2019/07/19 Javascript
详解Element-UI中上传的文件前端处理
2019/08/07 Javascript
浅谈webpack和webpack-cli模块源码分析
2020/01/19 Javascript
全面解析Python的While循环语句的使用方法
2015/10/13 Python
浅谈python中copy和deepcopy中的区别
2017/10/23 Python
python如何压缩新文件到已有ZIP文件
2018/03/14 Python
浅谈Python中的作用域规则和闭包
2018/03/20 Python
解决pycharm上的jupyter notebook端口被占用问题
2019/12/17 Python
在tensorflow中实现去除不足一个batch的数据
2020/01/20 Python
在echarts中图例legend和坐标系grid实现左右布局实例
2020/05/16 Python
CSS3的transition和animation的用法实例介绍
2014/08/20 HTML / CSS
J2EE面试题大全
2016/08/06 面试题
node中使用shell脚本的方法步骤
2021/03/23 Javascript
环境工程求职简历的自我评价范文
2013/10/24 职场文书
护士实习生自我鉴定范文
2013/12/10 职场文书
教师师德反思材料
2014/02/15 职场文书
毕业留言寄语大全
2014/04/10 职场文书
nginx反向代理时如何保持长连接
2021/03/31 Servers
MySQL CHAR和VARCHAR该如何选择
2021/05/31 MySQL
golang内置函数len的小技巧
2021/07/25 Golang
Vue3中toRef与toRefs的区别
2022/03/24 Vue.js