zoukankan      html  css  js  c++  java
  • django中views中方法的request参数

    知其然亦要知其所以然

    views每个方法的参数都是request,那么问题来了,request为何物?

    首先,几乎每个方法都是取数据(无论是从数据库,还是从第三方接口),然后进行一定的处理,之后传给前端。而前端请求数据,就会向后端发送一个http请求,这个请求的请求路径,经过urls,会调用url中指定的方法。此时django就会将HttpRequest对象作为第一个参数传入此方法。故,request即为一个httpRequest对象。

    然后,出现了一个新问题,httpRequest是什么,又含有什么属性和方法?

    1. httpRequest类定义在django.http中
    2. httpRequest对象是由django自动创建的

    常见属性: 

    • HttpRequest.method  字符串类型,表示所用的http方法
    • HttpRequest.content_type  指content_type头解析的请求的MIME类型
    • HttpRequest.content_params 指content_type标题中的 k/v参数字典
    • HttpRequest.GET 此为一个字典一样的对象,里面有get请求中的所有参数
    • HttpRequest.POST 此亦为一个字典一样的对象,里面有post请求表单中数据
    • HttpRequest.COOKIES 此仍为一个字典一样的对象,包含所有的cookie数据
    • HttpRequest.session  : SessionMiddleware中间件,可读写的,为一个字典一样的对象,表示当前会话。我们要保存用户状态,回话过程等等,需要利用此中间件
    • HttpRequest.user : AuthenticationsMiddleware中间件:表示当前登录用户的AUTH_USER_MODEL实例,若未登录,贼user为AnonymousUser实例

    QueryDict:

      在HttpRequest 对象中,属性 GET 和 POST 得到的都是 django.http.QueryDict 所创建的实例,此亦为一个类似于字典一样的类。

      经常用的方法为QueryDict.get(key,default) ,返回key对应的值,若对应多个值,则返回最后的值,若key不存在,则返回默认值。

      

  • 相关阅读:
    luogu P1613 跑路
    luogu P2047 社交网络
    luogu P2740 [USACO4.2]草地排水Drainage Ditches
    「字典树」最大异或对
    「贪心」耍杂技的牛
    「贪心」士兵
    「贪心」糖果传递
    「几何」[USACO12DEC]疯狂的栅栏Crazy Fences
    「LCA」[USACO10HOL]牛的政治Cow Politics
    「二分答案 + 前缀和」防线
  • 原文地址:https://www.cnblogs.com/yulongzhou/p/10680953.html
Copyright © 2011-2022 走看看