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现行筛选,然后再分页。

    速率

    版本

     序列化

    渲染器

  • 相关阅读:
    Java Web 网络留言板2 JDBC数据源 (连接池技术)
    Java Web 网络留言板3 CommonsDbUtils
    Java Web ConnectionPool (连接池技术)
    Java Web 网络留言板
    Java Web JDBC数据源
    Java Web CommonsUtils (数据库连接方法)
    Servlet 起源
    Hibernate EntityManager
    Hibernate Annotation (Hibernate 注解)
    wpf控件设计时支持(1)
  • 原文地址:https://www.cnblogs.com/huay/p/11263414.html
Copyright © 2011-2022 走看看