1.创建一个测试项目
 
1.1 创建项目和APP
 
'''1.创建项目和APP'''
django-admin startproject BookManage   # 创建项目
python manage.py startapp books     # 创建APP
 
'''2.在settings中注册books模型'''
INSTALLED_APPS = [
  'books.apps.BooksConfig'
]
# 注:pycharm无法联想,需要把apps文件夹设置为源根
 
'''3.urls.py中添加路由'''
urlpatterns = [
  path('books/', include('books.urls')),
]
 
'''4.books/urls.py中添加子路由'''
from django.urls import path
urlpatterns = [
 
]
 
2.配置跨域
 
2.1 跨域原理
 
1. 首先浏览器安全策略限制js ajax跨域访问服务器
2. 如果服务器返回的头部信息中有当前域:
 
// 允许 http://localhost:8080 这个网站打开的页面中的js访问我
Access-Control-Allow-Origin: http://localhost:8080
 
// 允许携带cookie访问我
Access-Control-Allow-Credentials: true
 
那么, 浏览器可以让js 请求该服务器

2.2 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 urls.py 中配置路由
urlpatterns = [
  path('login/', views.login),
]
 
3.2 user/views.py 中写一个login视图函数
 
from django.http import JsonResponse
import json
 
def login(request):
  body_json = request.body.decode()
  body_dict = json.loads(body_json)
  name = body_dict.get('name')
  pwd = body_dict.get('pwd')
  if not all([name, pwd]):
    resp = {
      "code": 999,
      "msg": '信息不全'
    }
    return JsonResponse(resp)
 
if name == 'zhangsan' and pwd == '1234':
  data = {
    "code": 0,
    "msg": '登录成功',
    "data": {
      "id": 1,
      "name": '张三',
      "age": 18
    }
  }
  resp = JsonResponse(data)
  return resp
else:
  data = {
    "code": 999,
    "msg": '用户名密码不正确'
  }
  resp = JsonResponse(data)
  return resp
 
3.3 测试接口
 
http://127.0.0.1:8000/login/
 
{
  "name":"zhangsan",
  "pwd":"1234"
}
 

02.django配置跨域并开发测试接口的更多相关文章

  1. django配置跨域并开发测试接口

    1.创建一个测试项目 1.1 创建项目和APP django-admin startproject BookManage # 创建项目 python manage.py startapp books ...

  2. day3(django配置跨域)

    1.跨越原理 1. 首先浏览器安全策略限制js ajax跨域访问服务器 2. 如果服务器返回的头部信息中有当前域: // 允许 http://localhost:8080 这个网站打开的页面中的js访 ...

  3. django允许跨域请求配置

    django允许跨域请求配置 下载corsheader pip install django-cors-headers 修改setting.py中配置 在INSTALLED_APPS中增加corshe ...

  4. vue开发环境配置跨域,一步到位

    本文要实现的是:使用vue-cli搭建的项目在开发时配置跨域,上线后不做任何任何修改,接口也可以访问,前端跨域解决方案 production:产品 生产环境 development:开发 开发环境 1 ...

  5. Django 处理跨域的配置、前台处理ajax

    一. Django处理跨域 跨域的处理方式有很多,使用最多的就是CORS(跨域资源共享),接下来大致提一下django中处理跨域的配置. 首先安装django-cors-headers模块: pip ...

  6. System.Web.Http.Cors配置跨域访问的两种方式

    System.Web.Http.Cors配置跨域访问的两种方式 使用System.Web.Http.Cors配置跨域访问,众多大神已经发布了很多文章,我就不在详细描述了,作为小白我只说一下自己的使用心 ...

  7. WebApi使用cors配置跨域问题

    1.首先安装CORS,在WebApiCors项目上面使用Nuget搜索“microsoft.aspnet.webapi.cors”,安装第一个 2.当我们安装这个包之后,现有的packages目录下会 ...

  8. ASP.NET MVC4应用程序配置跨域访问

    开发框架是使用webapi做后台,HTML5做前台,通过ajax调用webapi后台,返回json结果. 用的编译器是visual Studio2013,下面是配置方法 1.web.config文件 ...

  9. nginx配置跨域、gzip加速、代理详细讲解

    1.配置跨域 这个很简单,直接打开配置nginx.conf ,在http下配置下面三行代码:当然如果你是想某一个虚拟主机下跨域,那就在哪个server下面添加 add_header Access-Co ...

随机推荐

  1. Dell XPS 7590 Hackintosh

    网上主流引导Hackintosh的工具有Chameleon, Clover和OpenCore. 但是随着Hackintosh重要驱动开发团队acidanthera逐渐转向OpenCore,后者显然才是 ...

  2. Java 读取文件中的每一行,并为每一行插入特定的字符串

    工具 1:Eclipse Java EE IDE for Web Developers. Version: Photon Release (4.8.0). Build id: 20180619-120 ...

  3. C语言中time_t数据类型详细介绍

    包含文件:<time.h> #ifndef __TIME_T #define __TIME_T     /* 避免重复定义 time_t */ typedef long     time_ ...

  4. 【题解】[USACO19DEC]Milk Visits G

    题目戳我 \(\text{Solution:}\) 这题不要把思想局限到线段树上--这题大意就是求路径经过的值中\(x\)的出现性问题. 最开始的想法是值域线段树--看了题解发现直接\(vector\ ...

  5. CodeForces 79D 【Password】,洛谷P3943 【星空】

    其实我做的是洛谷的P3943,但是听说fstqwq窃题...... 题目描述: 小 C 拿来了一长串星型小灯泡,假装是星星,递给小 F,想让小 F 开心一点.不过,有 着强迫症的小 F 发现,这串一共 ...

  6. 解决FAT32格式U盘安装Windows 10时的报错(错误代码:0x8007000D)

    一.现象描述 使用UltraISO软碟通将 Windows 10 version 1909 刻录到U盘内来安装系统. 从U盘启动安装过程中,报错如下: "Windows 无法打开所需的文件 ...

  7. 从0到1进行Spark history分析

    一.总体思路 以上是我在平时工作中分析spark程序报错以及性能问题时的一般步骤.当然,首先说明一下,以上分析步骤是基于企业级大数据平台,该平台会抹平很多开发难度,比如会有调度日志(spark-sub ...

  8. JS常见加密混淆方式

    目录 前端js常见混淆加密保护方式 eval方法等字符串参数 emscripten WebAssembly js混淆实现 JSFuck AAEncode JJEncode 代码压缩 变量名混淆 字符串 ...

  9. 吐血分享一款免费看所有付费影视的app,不好用来石欠我

    前言 朋友经常找我要各种付费影视资源,在下逛遍各大网站,终于找到一款app,那简直是神器啊. 几乎各大主流平台的付费影视都能观看,亲测有效.还在浏览器一个一个搜资源而费劲?? 还在为只买了一个平台的V ...

  10. Chrome浏览器调试移动端网页,测试人员也可以轻松debug

    现在的产品,移动端应用占据很大市场,在测试过程中,就会测试各种各样的移动端页面.测试过程,或多或少会发现些问题,无非就是前端.后端问题.后端接口问题,可以利用工具:Fiddler或charles抓包查 ...