zoukankan      html  css  js  c++  java
  • REST framework框架的基本组件

    登录

    urls.py

        url(r'^login/$', views.LoginView.as_view(),name="login"),

    view.py

    class LoginView(APIView):
        authentication_classes = []
        def post(self,request):
            name=request.data.get("name")
            pwd=request.data.get("pwd")
            user=User.objects.filter(name=name,pwd=pwd).first()
            res = {"state_code": 1000, "msg": None}
            if user:
                random_str=get_random_str(user.name)
                token=Token.objects.update_or_create(user=user,defaults={"token":random_str})
                res["token"]=random_str
            else:
                res["state_code"]=1001 #错误状态码
                res["msg"] = "用户名或者密码错误"
    
            import json
            return Response(json.dumps(res,ensure_ascii=False))

    认证

    局部认证

    全局认证

     权限

     视图

         - 帮助开发者提供了一些类,并在类中提供了多个方法以供我们使用。

    路由 

      - 可以通过as_view传参数,根据请求方式不同执行相应的方法
      - 可以在url中设置一个结尾,类似于: .json

    解析器 

      - 根据ContentType请求头,选择不同解析器对 请求体中的数据进行解析。

      POST /index/ http1.1. host:11.11.11.11 Content-Type:url-formendo.... user=alex&age=123
      POST /index/ http1.1. host:11.11.11.11 Content-Type:application/json {....}

    分页

      根据页码

        http://www.example.com/api/v1/student/?page=1&size=10

      根据索引

        http://www.example.com/api/v1/student/?offset=60&limit=10

      根据加密

        http://www.exmple.com/api/v1/student/?page=erd8

    分页思考:

    页码越大速度越慢,为什么以及如何解决?
    原因:页码越大向后需要扫描的行数越多,因为每次都是从0开始扫描。
    解决:
    - 限制显示的页数
    - 记录当前页数据ID最大值和最小值,再次分页时,根据ID现行筛选,然后再分页。

    速率

    版本

     序列化

    渲染器

  • 相关阅读:
    hadoop大数据平台架构之DKhadoop详解
    越狱设备看不到系统文件夹
    iOS开发 调试 网络限速
    关于OCMock的一些事儿
    Cannot proceed with delivery: an existing transporter instance is currently uploading this package
    windows安装nose
    IE6支持png半透明图片
    ie下web常见错误和差异及解决方案
    js,php下 css颜色加深、减淡,css颜色递进的方法
    html+css div百分百占满正行的两种方法
  • 原文地址:https://www.cnblogs.com/huay/p/11263414.html
Copyright © 2011-2022 走看看