2. 前后分离 : MVT中的T部包含在后端的项目中
VUE(前端) + restframework(后端)
2.1REST - 所有web应用都应该遵守的架构设计指导原则
- 资源:
- 状态转移: GET(查询) / POST(创建) / PUT(修改全部变量) / PATCH (修改部分变量) / DELETE(删除)
- 统一接口 :
请求方式POST, 请求url : /app/student/
请求方式DELETE,请求url : /app/student/1/
请求方式PATCH, 请求url : /app/student/1/
请求方式PUT, 请求url : /app/student/1/ - filter - 过滤
- 状态码 -
rest返回结果: 状态码, 数据, 信息
data = {'code': 200, 'msg': '请求成功', data: {} }
GIL全局解释器锁 :
多线程在计算密集型,比单线程慢
多线程在I0密集型,比单线程块
使用协程:
只有一个线程
2.2 Django中使用
-
下载安装接口调试工具 : Postman
image.png -
安装工具包
pip install djangorestframework==3.4.6
pip install django-filter
# Filtering support 过滤作用 -
settting
里INSTALLED_APPS = [ 'rest_framework' ]
-
urls
里关联路径
导入包
from rest_framework.routers import SimpleRouter
管理学生路径资源
router = SimpleRouter()
router.register('student', views.StudentSource)
关联路径
urlpatterns += router.urls
-
建立序列化模块 serializers:
image.png -
views
里实现:
导入方法:
from rest_framework import mixins, viewsets
from app.app_serializers import StudentSerializer
定义实现CRUD - 增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)的类
class StudentSource(mixins.ListModelMixin, # 查询所有
mixins.RetrieveModelMixin, # 查询某一个
mixins.CreateModelMixin, # 创建
mixins.DestroyModelMixin, # 删除
viewsets.GenericViewSet # 包含get_queryset(self)方法,通过它才能获取到Student数据
):
# 查询资源的所有数据
queryset = Student.objects.all()
# 序列化
serializer_class = StudentSerializer
-
页面里查询结果(一般不用)
-
使用Postman查询工具 :
image.png
image.png
网友评论