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. [译]await VS return VS return await

    原文地址:await vs return vs return await作者:Jake Archibald 当编写异步函数的时候,await,return,return await三者之间有一些区别, ...

  2. Python_快速安装第三方库-pip

    如何快速安装第三方库? 通过python 豆瓣园源https://pypi.douban.com/simple/进行安装,利用国内网速 如何安装? pip -i install https://pyp ...

  3. Hbuilder给手机发送短信与拨打电话

    前言:业务场景 需要给手机号码拨打电话与发送短信.html5已经提供接口. methods: { Call: function() { var that = this; if(that.ptel == ...

  4. (入门)matlab中创建和调用m文件

    大学学过的一款软件,说实话没好好学,老师直接讲到高深的做仿真之类的 综合网上的教程讲述基础的matlab创建遇到的问题: 参考: 1. https://blog.csdn.net/weixin_423 ...

  5. PJzhang:鸟哥的linux私房菜-shell脚本-上

    猫宁~~~ 建议全程在centos7中进行,我在kali linux中有些命令无法执行. 1~家目录下创建bin文件,test.sh文件在bin目录 下面的shell代码打印Hello World! ...

  6. shell-脚本开发基本规范及习惯

    1.shell-脚本开发基本规范及习惯 1.开头指定脚本解析器 #!/bin/sh 或#!/bin/bash 2.开头加版本版权等信息 #Date: 2018/3/26 #Author: zhangs ...

  7. .NET Standard 类库的使用技巧

    系列目录     [已更新最新开发文章,点击查看详细] 在前一篇博客<.NET Standard中配置TargetFrameworks输出多版本类库>中详细介绍了如何创建.配置.条件编译. ...

  8. (转载)跟Classic ARM 处理器说拜拜——Atmel SAMA5D3 Xplained开发板评测

    2014 年 4 月 10 日 时间: 下午 3:15 作者: 幸得安然 电子产业的蓬勃发展带来了史无前例的生活.生产大跃进,但是,人们在享受发展喜悦的同时又不得不面临现实现状的囧境--在以移动电子设 ...

  9. 多测师讲解接口测试 _windows中搭建环境cms_高级讲师肖sir

    eclipse集成开发环境 搭建开发环境需要安装的工具如下 jdk-8u60-windows-x64.exe        jdk eclipse.rar      集成开发框架 mysql-inst ...

  10. day51 Pyhton 前端02

    内容回顾: 1.h1~h6:加粗,数字越大级别越小,自动换行 2.br:换行;hr:分割线; (特殊符号,空格) 3.p:与前边和后边内容之间有间距 4.a标签的href:本地文件连接;网络连接;锚链 ...