DRF框架的使用入门(一)解决DRF跨域请求问题

本文介绍了如何在DRF(Django Rest Framework)中解决跨域请求问题,通过使用django-cors-headers进行配置,并详细阐述了安装、设置过程。同时,文章还涉及到了序列化与反序列化的基本概念,以及前端如何通过ajax发送数据到后端并接收响应。
摘要由CSDN通过智能技术生成

DRF架构的使用即django rest framework

环境版本(django1.11,python3.5),适用于前后端分离项目
前文:推荐看官方文档:https://www.django.cn/course/show-20.html

配置过程

在自己所使用的的workon环境下先pip install

pip install djangorestframework

然后安装应用settings.py的INSTALLED_APPS:

INSTALLED_APPS = [
    'rest_framework',  # 添加这个

解决DRF跨域请求问题即django-cors-headers的使用

安装并配置django-cors-headers

在使用django-rest-framework开发项目的时候我们总是避免不了跨域的问题,因为现在大多数的项目都是前后端分离,前后端项目部署在不同的web服务器上,因为我们是后端程序员,因此我要通过后端的程序实现跨域。当然如果前端框架是Vue的话,则可以代理服务实现跨域,我也就知道一点点,如果有兴趣,大家可以自行搜索哦。

DRF后端实现跨域我们使用一个第三方扩展——— django-cors-headers

安装:

pip install django-cors-headers

注册,在settings.py:

INSTALLED_APPS = (
  'corsheaders',
)

MIDDLEWARE = [
  'corsheaders.middleware.CorsMiddleware', #最好添加至第一行
]

#单个配置
CORS_ORIGIN_WHITELIST =(
   # ' 域名',  # 这里设置域名
   'http://127.0.0.1:8080'
)
# 正则配置:
# CORS_ORIGIN_REGEX_WHITELIST =(r'^(https?://)?(\w+\.)?jim\.com $',)
# 或者直接允许所有主机跨域
CORS_ORIGIN_ALLOW_ALL = True 默认为False
# 一般情况下,我们配置这些就足够,当然最为一个出名的扩展,肯定做的很完美,更多的配置,

安装live-server 前端服务器

安装node版本管理工具之NVM:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

然后安装node和live-server:
注意live-server这一步要在要启动的网页所在的文件夹,启动服务器

nvm install node
npm install -g live-server
live-server 

在这里插入图片描述

配置完成。还有问题可以看:https://github.com/ottoyiu/django-cors-headers/

序列化与反序列化

序列化:将模型数据转化为json数据
反序列化:将接收到的json数据转化成模型

# 第一个参数是json数据,默认要是dict,
# 第二个参数设置为False可以传json
# 第三个参数是设置中文编码格式
return JsonResponse(data_list, safe=False, json_dumps_params={
   'ensure_ascii': False})

json.dumps和loads函数

1、json.dumps()和json.loads()是json格式处理函数(可以这么理解,json是字符串)
  (1)json.dumps()函数是将一个Python数据类型列表进行json格式的编码(可以这么理解,json.dumps()函数是将字典转化为字符串)
  (2)json.loads()函数是将json格式数据转换为Python数据类型(可以这么理解,json.loads()函数是将字符串转化为字典或者列表)

2、json.dumps()和json.loads()主要用来读写json文件函数

import json

    new_dict = {
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值