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中的二叉树查找算法模块使用指南
Jul 04 Python
详细探究Python中的字典容器
Apr 14 Python
python图片验证码生成代码
Jul 02 Python
Python 模拟购物车的实例讲解
Sep 11 Python
windows下安装Python的XlsxWriter模块方法
May 03 Python
Python实现对字典分别按键(key)和值(value)进行排序的方法分析
Dec 19 Python
python中hasattr()、getattr()、setattr()函数的使用
Aug 16 Python
python3 selenium自动化 frame表单嵌套的切换方法
Aug 23 Python
浅谈Django2.0 加xadmin踩的坑
Nov 15 Python
pyspark给dataframe增加新的一列的实现示例
Apr 24 Python
pd.drop_duplicates删除重复行的方法实现
Jun 16 Python
python读取mat文件生成h5文件的实现
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制作静态网站的模板框架(四)
2006/10/09 PHP
PHP通过header实现文本文件下载的代码
2010/08/08 PHP
php中get_headers函数的作用及用法的详细介绍
2013/04/27 PHP
使用PHP Socket写的POP3类
2013/10/30 PHP
javascript+css 网页每次加载不同样式的实现方法
2009/12/27 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
解析js如何获取当前url中的参数值并复制给input
2013/06/23 Javascript
jQuery下实现等待指定元素加载完毕(可改成纯js版)
2013/07/11 Javascript
JavaScript实现多个重叠层点击切换效果的方法
2015/04/24 Javascript
用js实现简单算法的实例代码
2016/09/24 Javascript
微信和qq时间格式模板实例详解
2016/10/21 Javascript
Jquery Easyui搜索框组件SearchBox使用详解(19)
2016/12/17 Javascript
canvas时钟效果
2017/02/16 Javascript
前端面试知识点目录一览
2019/04/15 Javascript
React中使用外部样式的3种方式(小结)
2019/05/28 Javascript
[01:07:19]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第一场 1月19日
2021/03/11 DOTA
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
2014/07/09 Python
python模块之StringIO使用示例
2015/04/08 Python
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
Pyinstaller将py打包成exe的实例
2018/03/31 Python
python将list转为matrix的方法
2018/12/12 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
2019/03/05 Python
Django用户认证系统 组与权限解析
2019/08/02 Python
Python 获取命令行参数内容及参数个数的实例
2019/12/20 Python
解决jupyter notebook 出现In[*]的问题
2020/04/13 Python
python实现读取类别频数数据画水平条形图案例
2020/04/24 Python
如何利用python发送邮件
2020/09/26 Python
python MD5加密的示例
2020/10/19 Python
Michael Kors澳大利亚官网:世界知名的奢侈饰品和成衣设计师
2020/02/13 全球购物
高二历史教学反思
2014/01/25 职场文书
生日主持词
2014/03/20 职场文书
投标授权委托书范文
2014/08/02 职场文书
新党章的学习心得体会
2014/11/07 职场文书
幼儿园体操比赛口号
2015/12/25 职场文书
Java面试题冲刺第十六天--消息队列
2021/08/07 面试题