Django(三)RESTFul之Django

RESTFul是一个API设计的规范,是在前后端分离的web开发中规范数据传输的接口,使前后端交互统一高效。

RESTful 的核心思想就是,客户端发出的数据操作指令都是"动词 + 宾语"的结构。比如,GET /articles这个命令,GET是动词,/articles是宾语(是复数形式)。如果是单数操作一般指明操作数据的id(pk)。GET /articles/?pk=1

动词通常就是五种 HTTP 方法,对应 CRUD 操作(可以直接应用相应的请求方式)

  • GET:读取(Read)
  • POST:新建(Create)
  • PUT:更新(Update)
  • PATCH:更新(Update),通常是部分更新
  • DELETE:删除(Delete)

对于只能发GET和POST的客户端可以用X-HTTP-Method-Override:PUT,指定请求方式

Django中使用RESTFul

安装模块:pip install djangorestframework

配置和使用:

    settings中:INSTALL_APPS = [… , ’rest_framework’,]

djangorestframework的核心是序列化:

在app中创建serializers.py文件,里面编写需要序列化的模型和模式。

  1 
  2 from rest_framework import serializers
  3 from app01.models import *
  4 
  5 # 定义序列化程序
  6 class UserInfoSerializer(serializers.ModelSerializer):
  7     '''指定需要序列化的模型和字段'''
  8     class Meta:
  9         model = Book  # 数据库表名
 10         fields = '__all__' # 所有的字段都要
序列化模型格式:

views.py中应用类视图并继承rest_framework中的包

  1 from rest_framework.viewsets import ModelViewSet
  2 from app01.serializers import *
  3 
  4 class UserInfoView(ModelViewSet):
  5     queryset = Book.objects.all() # 获取查询结果集
  6     serializer_class = UserInfoSerializer # 指定序列化器
  7 
views中的写法:

urls.py中的路由可以用rest_framework中的DefaultRouter来指定路由集

  1 from rest_framework.routers import DefaultRouter
  2 # 定义视图处理的路由器
  3 router = DefaultRouter()
  4 router.register('users',views.UserInfoView,base_name='')  # 在路由器中注册视图集
  5 
  6 urlpatterns = [
  7 
  8 ]
  9 
 10 urlpatterns += router.urls
 11 
 12 -----------------------------------------------------------------
 13 # 主路由中
 14 path('api/', include((router.urls, 'app_name'), namespace='instance_name')),
urls中路由集的写法:

猜你喜欢

转载自www.cnblogs.com/yulincoco/p/11934166.html