RESTful 前后分离

2018-09-06  本文已影响0人  十二右

2. 前后分离 : MVT中的T部包含在后端的项目中

VUE(前端) + restframework(后端)

2.1REST - 所有web应用都应该遵守的架构设计指导原则

  1. 资源:
  2. 状态转移: GET(查询) / POST(创建) / PUT(修改全部变量) / PATCH (修改部分变量) / DELETE(删除)
  3. 统一接口 :
    请求方式POST, 请求url : /app/student/
    请求方式DELETE,请求url : /app/student/1/
    请求方式PATCH, 请求url : /app/student/1/
    请求方式PUT, 请求url : /app/student/1/
  4. filter - 过滤
  5. 状态码 -
    rest返回结果: 状态码, 数据, 信息
    data = {'code': 200, 'msg': '请求成功', data: {} }

GIL全局解释器锁 :
多线程在计算密集型,比单线程慢
多线程在I0密集型,比单线程块

使用协程:
只有一个线程


2.2 Django中使用

  1. 下载安装接口调试工具 : Postman


    image.png
  2. 安装工具包
    pip install djangorestframework==3.4.6
    pip install django-filter # Filtering support 过滤作用

  3. setttingINSTALLED_APPS = [ 'rest_framework' ]

  4. urls里关联路径
    导入包
    from rest_framework.routers import SimpleRouter
    管理学生路径资源
    router = SimpleRouter()
    router.register('student', views.StudentSource)
    关联路径
    urlpatterns += router.urls

  5. 建立序列化模块 serializers:


    image.png
  6. 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
  1. 页面里查询结果(一般不用)


  2. 使用Postman查询工具 :


    image.png
    image.png
上一篇 下一篇

猜你喜欢

热点阅读