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 相关文章推荐
记录Django开发心得
Jul 16 Python
Python内置函数OCT详解
Nov 09 Python
Python读取指定目录下指定后缀文件并保存为docx
Apr 23 Python
Python实现基于二叉树存储结构的堆排序算法示例
Dec 08 Python
Python基本数据结构与用法详解【列表、元组、集合、字典】
Mar 23 Python
python实现海螺图片的方法示例
May 12 Python
Python学习笔记之变量、自定义函数用法示例
May 28 Python
使用虚拟环境打包python为exe 文件的方法
Aug 29 Python
使用Pandas的Series方法绘制图像教程
Dec 04 Python
python爬取王者荣耀全皮肤的简单实现代码
Jan 31 Python
python pandas.DataFrame.loc函数使用详解
Mar 26 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
Dec 07 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中的超全局变量
2006/10/09 PHP
php 大数据量及海量数据处理算法总结
2011/05/07 PHP
php jquery 多文件上传简单实例
2013/12/23 PHP
php递归遍历删除文件的方法
2015/04/17 PHP
为Yahoo! UI Extensions Grid增加内置的可编辑器
2007/03/10 Javascript
解决AJAX中跨域访问出现'没有权限'的错误
2008/08/20 Javascript
Jquery弹出窗口插件 LeanModal的使用方法
2012/03/10 Javascript
Javascript验证上传图片大小[前台处理]
2014/07/18 Javascript
jQuery三级下拉列表导航菜单代码分享
2020/04/15 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
AngularJS实现按钮提示与点击变色效果
2016/09/07 Javascript
微信小程序 加载 app-service.js 错误解决方法
2016/10/12 Javascript
使用Angular缓存父页面数据的方法
2017/01/03 Javascript
NodeJs下的测试框架Mocha的简单介绍
2017/02/22 NodeJs
JavaScript函数绑定用法实例分析
2017/11/14 Javascript
微信小程序获取用户openid的实现
2018/12/24 Javascript
Vue项目安装插件并保存
2019/01/28 Javascript
微信小程序实现跳转的几种方式总结(推荐)
2019/04/24 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
2019/05/12 Javascript
微信小程序上传图片并等比列压缩到指定大小的实例代码
2019/10/24 Javascript
浅谈webpack和webpack-cli模块源码分析
2020/01/19 Javascript
django与小程序实现登录验证功能的示例代码
2019/02/19 Python
Python for循环与range函数的使用详解
2019/03/23 Python
Python Web程序搭建简单的Web服务器
2019/07/31 Python
Python的bit_length函数来二进制的位数方法
2019/08/27 Python
Python如何使用函数做字典的值
2019/11/30 Python
python实现门限回归方式
2020/02/29 Python
关于python 跨域处理方式详解
2020/03/28 Python
python模拟实现分发扑克牌
2020/04/22 Python
使用Python实现音频双通道分离
2020/12/25 Python
详解通过HTML5 Canvas实现图片的平移及旋转变化的方法
2016/03/22 HTML / CSS
美国当红的名品折扣网:Gilt Groupe
2016/08/15 全球购物
俄罗斯大型在线书店:Читай-город
2019/10/10 全球购物
厨房管理计划书
2014/04/27 职场文书
学习保证书
2015/01/17 职场文书
SpringBoot详解自定义Stater的应用
2022/07/15 Java/Android