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. Node.js文件上传

    Node.js express使用Multer实现文件上传html部分 <div> <h3>文件上传:</h3> 选择一个文件上传: <br/> < ...

  2. WordPress用户角色权限

    [转自:群燕小站(http://www.zqunyan.com):原文链接: http://www.zqunyan.com/158.html] WordPress默认的用户角色有5个:订阅者,投稿者, ...

  3. Lyndon words学习笔记

    Lyndon words 定义: 对于一个字符串\(S\),若\(S\)的最小后缀是其本身,则\(S\)为一个\(lyndon\)串; 记为\(S\in L\); 即: \[S \in L \begi ...

  4. 剑指Offer(一):二维数组中的查找

    一.前言 刷题平台:牛客网 二.题目 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整 ...

  5. python-格式化(%,format,f-string)输出+输入

    1-格式化输出: % 1.print('我的姓名是%s,身高%s cm'%(name,height)) 2.%s -str() ; %d–十进制3.传入值的时候一定是个元组,不是列表4.当指定长度时: ...

  6. matlab find函数使用语法

    find 找到非零元素的索引和值 语法: 1. ind = find(X) 2. ind = find(X, k) 3. ind = find(X, k, 'first') 4. ind = find ...

  7. 《穷查理年鉴》金钱 & 生意 & 律师(关于金钱)

    金钱 025.钱还得快才会借得快. 030.钱和人有着复杂的友谊:人能让钱变坏,钱也能让人变坏. 034.绝望增加债务,勤奋偿还债务. 037.只有一无所有的人才会没有烦恼. 049.穷人为他的胃找食 ...

  8. 常见的Mysql十款高可用方案

    简介 我们在考虑MySQL数据库的高可用架构时,主要考虑如下几方面: 如果数据库发生了宕机或者意外中断等故障,能尽快恢复数据库的可用性,尽可能的减少停机时间,保证业务不会因为数据库的故障而中断. 用作 ...

  9. 微信小程序适配iPhone X

    1.获取设备型号 App({ // 全局数据 globalData: { // 其他数据定义 ... isIPX: false, // 当前设备是否为 iPhone X }, // 小程序启动入口 o ...

  10. linux配置定时任务cron/定时服务与自启动

    实现linux定时任务有:cron.anacron.at,使用最多的是cron任务 名词解释 cron--服务名:crond--linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与 ...