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通过pil模块将raw图片转换成png图片的方法
Mar 16 Python
python3+PyQt5+Qt Designer实现扩展对话框
Apr 20 Python
python爬取网页转换为PDF文件
Jun 07 Python
Django项目开发中cookies和session的常用操作分析
Jul 03 Python
python 遍历目录(包括子目录)下所有文件的实例
Jul 11 Python
python多进程实现文件下载传输功能
Jul 28 Python
python实现银联支付和支付宝支付接入
May 07 Python
Django框架验证码用法实例分析
May 10 Python
python pickle存储、读取大数据量列表、字典数据的方法
Jul 07 Python
Python中的几种矩阵乘法(小结)
Jul 10 Python
python模拟预测一下新型冠状病毒肺炎的数据
Feb 01 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
Jun 28 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
关于shopex同步ucenter的redirect问题,导致script不运行
2013/04/10 PHP
setInterval 和 setTimeout会产生内存溢出
2008/02/15 Javascript
javascript打开新窗口同时关闭旧窗口
2009/01/16 Javascript
javascript中"/"运算符常见错误
2010/10/13 Javascript
brook javascript框架介绍
2011/10/10 Javascript
用jquery实现点击栏目背景色改变
2012/12/10 Javascript
如何用jquery控制表格奇偶行及活动行颜色
2014/04/20 Javascript
jquery中 $.expr使用实例介绍
2014/06/09 Javascript
jquery中each方法示例和常用选择器
2014/07/08 Javascript
node.js中的events.emitter.once方法使用说明
2014/12/10 Javascript
javascript显示倒计时控制按钮的简单实现
2016/06/07 Javascript
js实现自定义路由
2017/02/04 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
2018/02/09 Javascript
react在安卓中输入框被手机键盘遮挡问题的解决方法
2018/09/03 Javascript
js中的深浅拷贝问题简析
2019/05/10 Javascript
vue项目前端知识点整理【收藏】
2019/05/13 Javascript
JavaScript经典案例之简易计算器
2020/08/24 Javascript
记一次vue跨域的解决
2020/10/21 Javascript
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
django站点管理详解
2017/12/12 Python
python matplotlib画图实例代码分享
2017/12/27 Python
python指定写入文件时的编码格式方法
2018/06/07 Python
python 通过可变参数计算n个数的乘积方法
2019/06/13 Python
Python的numpy库下的几个小函数的用法(小结)
2019/07/12 Python
使用python的turtle绘画滑稽脸实例
2019/11/21 Python
Python xlrd excel文件操作代码实例
2020/03/10 Python
selenium+python配置chrome浏览器的选项的实现
2020/03/18 Python
Python 私有属性和私有方法应用场景分析
2020/06/19 Python
python 实现Requests发送带cookies的请求
2021/02/08 Python
整理HTML5中支持的URL编码与字符编码
2016/02/23 HTML / CSS
phonegap常用事件总结(必看篇)
2017/03/31 HTML / CSS
金融事务专业求职信
2014/04/25 职场文书
2014年全国爱牙日宣传活动方案
2014/09/21 职场文书
离婚财产分隔协议书
2014/10/23 职场文书
2015年法制宣传月活动总结
2015/03/26 职场文书
Java详细解析==和equals的区别
2022/04/07 Java/Android