Django的DRF框架
2019-03-23 00:40
399 查看
WSGI协议其实是定义了一种server与application解耦的规范,即可以有多个实现WSGI server的服务器,也可以有多个实现WSGI application的框架,那么就可以选择任意的server和application组合实现自己的web应用。例如uWSGI和Gunicorn都是实现了WSGI server协议的服务器,Django,Flask是实现了WSGI application协议的web框架,可以根据项目实际情况搭配使用。
Django REST framework 通常简称为DRF框架,是建立在Django框架基础之上,由Tom Christie大牛二次开发的开源项目。
REST特点:url简洁,将参数通过url传到服务器
如果一个架构符合REST原则,就称它为RESTful架构:
- 每一个URL代表一种资源,资源作为网址,只能有名词,不能有动词,而且所用的名词往往与数据库的表名对应.
- 客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。
REST接口开发的核心任务
- 将请求的数据(如JSON格式)转换为模型类对象
- 操作数据库
- 将模型类对象转换为响应的数据(如JSON格式)
1、安装DRF
pip install djangorestframework
2、添加rest_framework应用
INSTALLED_APPS = [ ... 'rest_framework', ]
3、创建序列化器
class BookInfoSerializer(serializers.ModelSerializer): """图书数据序列化器""" class Meta: model = BookInfo fields = '__all__'
4、编写视图
from rest_framework.viewsets import ModelViewSet from .serializers import BookInfoSerializer from .models import BookInfo class BookInfoViewSet(ModelViewSet): queryset = BookInfo.objects.all() serializer_class = BookInfoSerializer
- queryset 指明该视图集在查询数据时使用的查询集
- serializer_class 指明该视图在进行序列化或反序列化时使用的序列化器
5、定义路由
urlpatterns = [ ... ]
Serializer的构造方法为:
Serializer(instance=None, data=empty, **kwarg)
说明:用于序列化时,将模型类对象传入instance参数,用于反序列化时,将要被反序列化的数据传入data参数。除了instance和data参数外,在构造Serializer对象时,还可通过context参数额外添加数据。
通过context参数附加的数据,可以通过Serializer对象的context属性获取。
视图
两个基类:APIView,GenericAPIView
五个扩展类:ListModelMixin列表视图扩展类,CreateModelMixin创建视图扩展类,RetrieveModelMixin详情视图扩展类,UpdateModelMixin更新视图扩展类,DestroyModelMixin删除视图扩展类;
几个可用子类视图:CreateAPIView,ListAPIView,RetireveAPIView,DestoryAPIView,UpdateAPIView,RetrieveUpdateAPIView,RetrieveUpdateDestoryAPIView;
相关文章推荐
- Python 的request模块上传图片到django,数据库保存路径名,后台框架django DRF
- DjangoDRF框架中的ORM
- Django-drf 框架的mysql和redis及日志的配置
- 在django-rest-framework 里使用全文搜索框架 haystack 和 drf_haystack
- Django 的DRF框架 Django rest Framework详解
- 写写Django中DRF框架概述以及序列化器对象serializer的构造方法以及使用
- 四十六、python学习之Django框架(DRF框架二):序列/反序列化器的定于与使用
- Django_DRF框架学习_day01
- Django框架学习day02-类视图
- Django的全文检索功能(一):haystack全文检索的框架
- python的web开发框架django学习笔记
- django框架
- Django框架工作流程(Python)
- 使用url_helper简化Python中Django框架的url配置教程
- Python中Django框架下的staticfiles使用简介
- linux下python、django框架的配置
- Django contenttypes 框架详解(小结)
- python模拟Django框架实例
- 使用Nginx+uWsgi实现Python的Django框架站点动静分离
- Django web 框架