当前位置:首页 > Web开发 > 正文

必须返回HttpResponse对象或子对象

2024-03-31 Web开发

标签:

1. HttpRequest东西

处事器接收到http协议的请求后,会按照报文创建HttpRequest东西,这个东西不需要我们创建,直接使用处事器结构好的东西就可以。视图的第一个参数必需是HttpRequest东西,在django.http模块中界说了HttpRequest东西的API。

1.1 属性 

path:一个字符串,暗示请求的页面的完整路径,不包罗域名和参数部分。

method:一个字符串,暗示请求使用的HTTP要领,常用值包孕:‘GET‘、‘POST‘。

在浏览器中给出地点发出请求给与get方法,如超链接。

在浏览器中点击表单的提交按钮倡议请求,如果表单的method设置为post则为post请求。

encoding:一个字符串,暗示提交的数据的编码方法。

如果为None则暗示使用浏览器的默认设置,一般为utf-8。

这个属性是可写的,可以通过改削它来改削访谒表单数据使用的编码,接下来对属性的任何访谒将使用新的encoding值。

GET:QueryDict类型东西,类似于字典,包罗get请求方法的所有参数。

POST:QueryDict类型东西,类似于字典,包罗post请求方法的所有参数。

FILES:一个类似于字典的东西,包罗所有的上传文件。

COOKIES:一个标准的Python字典,包罗所有的cookie,键和值都为字符串。

session:一个既可读又可写的类似于字典的东西,暗示当前的会话,只有当Django 启用会话的撑持时才可用,详细内容见"状态连结"。

技术图片

1.2 QueryDict东西 

界说在django.http.QueryDict

HttpRequest东西的属性GET、POST都是QueryDict类型的东西

与python字典差别,QueryDict类型的东西用来措置惩罚惩罚同一个键带有多个值的情况

要领get():按照键获取值

如果一个键同时拥有多个值将获取最后一个值

如果键不存在则返回None值,可以设置默认值进行后续措置惩罚惩罚

dict.get(,默认值) 可简写为 dict[]

要领getlist():按照键获取值,值以列表返回,可以获取指定键的所有值

如果键不存在则返回空列表[],可以设置默认值进行后续措置惩罚惩罚

dict.getlist(,默认值)

1.3 GET属性

请求格局:在请求地点末尾使用?,之后以“键=值”的格局拆分,多个键值对之间以&连接。

例:网址如下

https://search.jd.com/Search?keyword=%E7%AC%94%E8%AE%B0%E6%9C%AC&enc=utf-8&wq=%E7%AC%94%E8%AE%B0%E6%9C%AC&pvid=e6ed133c7c1f4286b8579fed9c36e187

此中的请求参数为:

keyword=%E7%AC%94%E8%AE%B0%E6%9C%AC&enc=utf-8&wq=%E7%AC%94%E8%AE%B0%E6%9C%AC&pvid=e6ed133c7c1f4286b8579fed9c36e187

分析请求参数,键为‘a‘,‘b‘,‘c‘,转化为‘10‘,‘20‘,‘python‘。

在Django中可以使用HttpRequest东西的GET属性获得get方方法请求的参数。

GET属性是一个QueryDict类型的东西,键和值都是字符串类型。

键是开发人员在编写代码时确定下来的。

值是按照数据生成的。

1.4 POST属性

使用form表单请求时,要领方法为post担任倡议post方法的请求,,需要使用HttpRequest东西的POST属性接收参数,POST属性是一个QueryDict类型的东西。

表单form如何提交参数呢?

表单控件名称属性的值作为键,值属性的变量值,组成键值对提交。

如果表单控件没有名称属性则不提交。

对付复选框控件,名称属性的值不异为一组,被指定的项会被提交,呈现一键多值的情况。

键是表单控件名称属性的值,是由开发人员编写的。

值是用户填写或选择的。

2. HttpResponse东西

视图在接收请求并措置惩罚惩罚后,必需返回HttpResponse东西或子东西。在django.http模块中界说了HttpResponse东西的API。HttpRequest东西由Django创建,HttpResponse东西由开发人员创建。

技术图片

2.1 属性

content:暗示返回的内容。

charset:暗示response给与的编码字符集,默认为utf-8。

status_code:返回的HTTP响应状态码。

content-type:指定返回数据的的MIME类型,默认为‘text/html‘。

2.2 要领

_init_:创建HttpResponse东西后完成返回内容的初始化。

set_cookie:设置Cookie信息。

set_cookie(key, value=‘‘, max_age=None, expires=None)

cookie是网站以键值对格局存储在浏览器中的一段纯文本信息,用于实现用户跟踪。

max_age是一个整数,暗示在指定秒数后过期。

expires是一个datetime或timedelta东西,会话将在这个指定的日期/时间过期。

max_age与expires二选一。

如果不指定过期时间,在封锁浏览器时cookie会过期。

delete_cookie(key):删除指定的key的Cookie,如果key不存在则什么也不产生。

write:向响应体中写数据。

2.3 子类JsonResponse

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31057.html