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改变日志(logging)存放位置的示例
Mar 27 Python
用Python实现一个简单的多线程TCP服务器的教程
May 05 Python
Python中is与==判断的区别
Mar 28 Python
Python实现的购物车功能示例
Feb 11 Python
python3第三方爬虫库BeautifulSoup4安装教程
Jun 19 Python
Python实现将多个空格换为一个空格.md的方法
Dec 20 Python
浅谈Python中eval的强大与危害
Mar 13 Python
django settings.py 配置文件及介绍
Jul 15 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
Jul 26 Python
PyQt5 界面显示无响应的实现
Mar 26 Python
如何基于线程池提升request模块效率
Apr 18 Python
django 模型字段设置默认值代码
Jul 15 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 常用的系统函数
2017/02/07 PHP
Yii2表单事件之Ajax提交实现方法
2017/05/04 PHP
关于恒等于(===)和非恒等于(!==)
2007/08/20 Javascript
给Javascript数组插入一条记录的代码
2007/08/30 Javascript
从JavaScript 到 JQuery (1)学习小结
2009/02/12 Javascript
jQuery boxy弹出层插件中文演示及使用讲解
2011/02/24 Javascript
避免回车键导致的页面无意义刷新的解决方法
2011/04/12 Javascript
ExtJS的拖拽效果示例
2013/12/09 Javascript
createTextRange()的使用示例含文本框选中部分文字内容
2014/02/24 Javascript
JS实现清除指定cookies的方法
2014/09/20 Javascript
node.js中的fs.renameSync方法使用说明
2014/12/16 Javascript
JS实现动态移动层及拖动浮层关闭的方法
2015/04/30 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
jQuery实现两个select控件的互移操作
2016/12/22 Javascript
详解AngularJS1.6版本中ui-router路由中/#!/的解决方法
2017/05/22 Javascript
Vue resource中的GET与POST请求的实例代码
2017/07/21 Javascript
JS运动特效之链式运动分析
2018/01/24 Javascript
JS中‘hello’与new String(‘hello’)引出的问题详解
2018/08/14 Javascript
Webpack之tree-starking 解析
2018/09/11 Javascript
浅谈js闭包理解
2019/03/28 Javascript
JS使用Chrome浏览器实现调试线上代码
2020/07/23 Javascript
Vue页面渲染中key的应用实例教程
2021/01/12 Vue.js
js中延迟加载和预加载的具体使用
2021/01/14 Javascript
python 上下文管理器使用方法小结
2017/10/10 Python
TensorFlow Session使用的两种方法小结
2018/07/30 Python
Python提取PDF内容的方法(文本、图像、线条等)
2019/09/25 Python
Python3 读取Word文件方式
2020/02/13 Python
python中函数返回多个结果的实例方法
2020/12/16 Python
英国第一蛋白粉品牌:Myprotein
2016/09/14 全球购物
负责人任命书范本
2014/06/04 职场文书
运动会的口号
2014/06/09 职场文书
改作风抓落实促发展心得体会
2014/09/10 职场文书
开会通知
2015/04/20 职场文书
培训讲师开场白
2015/06/01 职场文书
pandas中DataFrame数据合并连接(merge、join、concat)
2021/05/30 Python
Hive常用日期格式转换语法
2022/06/25 数据库