DRF框架的使用入门(一)解决DRF跨域请求问题
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 = {