• Django之views.py详解


    http请求中产生的两个核心对象:

    http请求:HttpRequest
    http响应:HttpResponse

    所在位置:from django.http import HttpRequest,HttpResponse

    1、HttpRequest:
    HttpRequest对象的属性:

    Attribute         Description      
    path      

    请求页面的全路径,不包括域名—例如,

    “/music/bands/the_beatles/”

    method  

    请求中使用的HTTP方法的字符串表示。全大写表示。例如:

    if request.method == 'GET':

        do_something()

    elif request.method == 'POST':

        do_something_else()                                   

    GET 包含所有HTTP GET参数的类字典对象。参见QueryDict文档。
    POST  

    包含所有HTTP POST参数的类字典对象。参见QueryDict文档。

    服务器收到空的POST请求的情况也是有可能发生的。也就是说,表单form通过HTTP POST方法提交

    请求,但是表单中可以没有数据。不能使用语句if request.POST来判断是否使用HTTP POST方法;

    应该使用if request.method == 'POST' (参见本表的method属性)。

    注意:POST不包括file-upload信息。参见FILES属性。

    REQUEST

    这个属性再django1.9里面已经被移除掉了。

    COOKIES 包含所有cookies的标准python字典对象。Keys和values都是字符串。
    FILES

    包含所有上传文件的类字典对象。FILES中的每个Key都是<input type="file" name=""/>标签中

    name属性的值。FILES中的每个value同时也是一个标准Python字典对象,包含下面三个Keys:

    • filename:上传文件名,用Python字符串表示
    • content-type:上传文件的Content type
    • content:上传文件的原始内容

    注意:只有在请求方法是POST,并且请求页面中<form>有enctype="multipart/form-data"属性时FILES才拥有数据。否则,FILES是一个空字典。

    META  

    包含所有可用HTTP头部信息的字典。例如:

    • CONTENT_LENGTH
    • CONTENT_TYPE
    • QUERY_STRING:未解析的原始查询字符串
    • REMOTE_ADDR:客户端IP地址
    • REMOTE_HOST:客户端主机名
    • SERVER_NAME:服务器主机名
    • SERVER_PORT:服务器端口

    META中这些头加上前缀HTTP_最为Key,例如:

    HTTP_ACCEPT_ENCODING

    HTTP_ACCEPT_LANGUAGE

    HTTP_HOST:客户发送的HTTP主机头信息

    HTTP_REFERER:referring页

    HTTP_USER_AGENT:客户端的user-agent字符串

    HTTP_X_BENDER:X-Bender头信息

    user

    是一个django.contrib.auth.models.User对象,代表当前登录的用户。如果访问用户当前没有登录,user将被初始化为django.contrib.auth.models.AnonymousUser的实例。你可以通过user的is_authenticated()方法来辨别用户是否登录;

    if request.user.is_authenticated():

        #Do something for logged-in users.

    else:

        #Do something for anonymous users.

    只有激活Django中的AuthenticationMiddleware时该属性才可用

    session 唯一可读写的属性,代表当前会话的字典对象。只有激活Django中的session支持时该属性才可用。
    raw_post_data 原始HTTP POST数据。未解析过。高级处理时会有用处。

    HttpRequest对象的方法(部分):

    get_full_path()   返回包含查询字符串的请求路径。例如,"/music/bands/the_beatles/?print=true"  

    QueryDict对象(部分)

    get() 如果key对应多个value,get()返回最后一个value。

    在HttpRequest对象中,GET和POST属性时django.http.QueryDict类的实例。

    2、HttpResponse:

  • 相关阅读:
    HDU 3336 Count the string (KMP next数组运用——统计前缀出现次数)
    HDU 2594 Simpsons’ Hidden Talents (KMP——前缀后缀最长公共串)
    2015 Multi-University Training Contest 7 1011(DP)
    2015 Multi-University Training Contest 7 1005
    2015 Multi-University Training Contest 7 1007(DP)
    poj 2342 Anniversary party (树形dp)
    POJ 1611 The Suspects (并查集)
    poj 2236 Wireless Network(并查集)
    hdu 3591 The trouble of Xiaoqian(多重背包)
    hdu 2079 选课时间(母函数)
  • 原文地址:https://www.cnblogs.com/luchuangao/p/7119226.html
Copyright © 2020-2023  润新知