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爬取csdn博客访问量
Feb 14 Python
酷! 程序员用Python带你玩转冲顶大会
Jan 17 Python
python模块之paramiko实例代码
Jan 31 Python
python3+PyQt5重新实现自定义数据拖放处理
Apr 19 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
Jan 04 Python
Pycharm 设置默认头的图文教程
Jan 17 Python
wxPython实现绘图小例子
Nov 19 Python
基于Python和PyYAML读取yaml配置文件数据
Jan 13 Python
Python基于paramunittest模块实现excl参数化
Apr 26 Python
python调用API接口实现登陆短信验证
May 10 Python
termux中matplotlib无法显示中文问题的解决方法
Jan 11 Python
Python代码实现双链表
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载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
2016/11/14 PHP
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
chrome调试javascript详解
2015/10/21 Javascript
浅析JS动态创建元素【两种方法】
2016/04/20 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
轻松5句话解决JavaScript的作用域
2016/07/15 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
2016/12/13 Javascript
JavaScript中日常收集常见的10种错误(推荐)
2017/01/08 Javascript
BootStrap实现带关闭按钮功能
2017/02/15 Javascript
JavaScript中的编码和解码函数
2017/02/15 Javascript
JavaScript使用链式方法封装jQuery中CSS()方法示例
2017/04/07 jQuery
js获取元素的偏移量offset简单方法(必看)
2017/07/05 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
vue 实现全选全不选的示例代码
2018/03/29 Javascript
在create-react-app中使用css modules的示例代码
2018/07/31 Javascript
jquery.param()实现数组或对象的序列化方法
2018/10/08 jQuery
基于vue实现移动端圆形旋钮插件效果
2018/11/28 Javascript
jQuery实现动态添加和删除input框实例代码
2019/03/26 jQuery
webpack实践之DLLPlugin 和 DLLReferencePlugin的使用教程
2019/06/10 Javascript
基于ssm框架实现layui分页效果
2019/07/27 Javascript
jQuery中DOM操作原则实例分析
2019/08/01 jQuery
JavaScript的变量声明与声明提前用法实例分析
2019/11/26 Javascript
uni-app微信小程序登录授权的实现
2020/05/22 Javascript
[37:22]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第一局
2016/02/28 DOTA
Python遍历文件夹和读写文件的实现代码
2016/08/28 Python
Python 类的继承实例详解
2017/03/25 Python
python实现用户答题功能
2018/01/17 Python
python 使用值来排序一个字典的方法
2018/11/16 Python
美国领先的个性化礼品商城:Personalization Mall
2019/07/27 全球购物
Sandro法国官网:法国成衣品牌
2019/08/28 全球购物
Chupi官网:在爱尔兰手工制作的订婚、结婚戒指和精美珠宝
2020/09/28 全球购物
mysql的最长数据库名,表名,字段名可以是多长
2014/04/21 面试题
教师评优的个人自我评价分享
2013/09/19 职场文书
公诉意见书范文
2015/06/05 职场文书
2016年党建工作简报
2015/11/26 职场文书
2016年圣诞节寄语(一句话)
2015/12/07 职场文书