Django请求响应对象

请求与响应对象#

HttpRequest#

HttpRequest存储了客户请求的相关参数和一些查询方法。

  • path

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

  • method

Http请求方法,包括'GET','POST'。

  • GET

QueryDict类实例,包含所有HTTP GET参数的字典对象。

  • POST

QueryDict类实例,包含所有HTTP POST参数的字典对象。

  • REQUEST

为了方便,该属性是POST和GET属性的集合。

  • COOKIES

包含所有Cookies的标准Python字典对象,Keys和Values都是字符串。

HttpRequest.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None)

返回签名过的Cookie 对应的值,如果签名不再合法则返回django.core.signing.BadSignature。如果提供default 参数,将不会引发异常并返回default 的值。

可选参数salt可以用来对安全密钥强力攻击提供额外的保护。
max_age参数用于检查Cookie 对应的时间戳以确保Cookie 的时间不会超过max_age秒。

HttpRequest.session.set_test_cookie() 设置测试cookie,检验客户端是否支持cookie
HttpRequest.session.test_cookie_worked() 检测测试cookie,客户端支持时返回True。

set_test_cookie的同一次请求-响应中test_cookie_worked的结果是不可靠的。

  • FILES

包含所有上传文件的类字典对象。

FILES中的每个Key都是<input type="file" name="" />标签中name属性的值,FILES中的每个value 同时也是一个标准Python字典对象,包含3个Key:

"filename"

"content-type"

"content"

  • 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头信息

  • session

可读写的session对象

  • raw_post_data

原始的POST数据

  • 其它

HttpRequest.is_secure()请求是否由Https协议发起

HttpRequest.is_ajax() 请求是否由Ajax协议发起

QueryDict#

HttpRequest中的GET和POST属性都是django.http.QueryDict类的实例,它是dict派生类。提供了对一键多值的支持和相关操作方法。

HttpResponse#

  • content

HttpResponsee.content是存储响应内容的字符串,

  • item

HttpResponse.__setitem__(header, value) 设置响应头属性

HttpResponse.__delitem__(header) 删除响应头属性

HttpResponse.__getitem__(header) 访问响应头属性

HttpResponse.has_header(header) 检查是否存在响应头属性

  • cookie

HttpResponse.set_cookie(key, value='', max_age=None, expires=None, path='/', domain=None, secure=None, httponly=False) 设置cookie

HttpResponse.delete_cookie(key, path='/', domain=None) 删除cookie

HttpResponse.set_signed_cookie(key, value, salt='', max_age=None, expires=None, path='/', domain=None, secure=None, httponly=True) 使用带有密钥签名的数据

JsonResponse#

JsonResponse是HttpResponse的子类,用于生成一个Json格式而非html/xml的响应。

JsonResponse.__init__(data, encoder=DjangoJSONEncoder, safe=True, **kwargs)

在safe参数为True时,只接受dict对象作为参数,并将Dict作为Json字符串;在safe=False时使用ncoder=django.core.serializers.json.DjangoJSONEncoder参数指定的encoder。

from django.http import JsonResponse

def test_json(request):
	response = JsonResponse({'foo': 'bar'})
	return response

TemplateResponse#

posted @   -Finley-  阅读(2044)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示
主题色彩