• [Django2.2文档阅读]HttpRequest


    概览:

    Django使用request和response对象来传递状态。

    当请求一个页面时,django创建一个包含这个请求的metadata的HttpRequest对象,然后django加载对应的视图,将这个HttpRequest对象作为视图函数的第一个参数传递。对应的,每个视图函数都应该返回一个HttpResponse对象。

    # 我的理解:Django对http请求的一些参数进行了封装,但是也添加了一些django自己的东西,后面会提到。


    HttpRequst 对象:

    基本参数(这里整理一些常用的):

    • HttpRequest.body:请求体 (bytes)

      raw HTTP request body,类型是bytes,使用时注意decode()。一般用来处理例如binary images、XML payload等。处理传统的表单数据,使用HttpRequest.POST。

    • HttpRequest.path:请求的url路径 (string)

    • HttpRequest.method:请求方法 (string)

    • HttpRequest.GET: 包含所有HTTP GET请求的参数,类字典(QueryDict)对象

    • HttpRequest.POST:类字典(QueryDict)对象

      包含所有通过表单提交的的POST参数。now-form data放在了HttpRequest.body中(表单提交的参数也body中也有,是bytes形式)。

    • HttpRequest.COOKIE:字典,key和value为string。

    • HttpRequest.FILE: 类字典对象。

      只有通过POST且enctype="multipart/form-data"的文件才会在这里,其他的情况(例如使用ajax),FILE为空。

    • HttpRequest.headers:类字典对象,包含http的所有首部。(django2.2中新加)


    middleware设置的参数: # django添加的一些额外属性

    • HttpRequest.session: 由SessionMiddleware设置,可读可写的类字典对象,用来表示当前的session

    • HttpRequest.user:由 AuthenticationMiddleware 设置,是AUTH_USER_MODEL的实例,代表当前登录用户。如果当前没有登录用户,则是 AnonymousUser的实例。可以通过 is_authenticated来判断是否登录。

  • 相关阅读:
    POJ 1017
    poj 2709
    poj 1328
    POJ 2386
    POJ 1065
    POJ 3728
    hdu--1004--Let the Balloon Rise
    hdu--2570--迷瘴(贪心)
    hdu--1257--最少拦截系统(贪心)
    hdu--1230--火星A+B
  • 原文地址:https://www.cnblogs.com/enmac/p/14278924.html
Copyright © 2020-2023  润新知