Django - HttpRequest

当一个页面被请求时, Django创建一个包含请求元数据的HttpRequest对象, 然后Django调入合适的视图, 把HttpRequest作为视图函数的第一个参数传入, 每个视图都有返回一个HttpResponse对象.

HttpRequest

HttpRequest表示来自某客户端的一个单独的HTTP请求

HttpRequest对象的属性

  • path : 表示提交请求页面完整地址的字符串, 不包括域名
    • 如 : “/music/bands/the_beatles/”.
  • method : 表示提交请求使用的HTTP方法, 它是大写的.
    • 例如 : “GET,POST”
  • GET : 一个类字典对象, 包含所有的HTTP的GET参数信息
  • POST : 一个类字典对象, 包含所有的HTTP的POST参数信息
    • 通过POST提交的请求有可能包含一个空的POST字典, 也就是说, 一个通过POST方法提交的表单可能是空的. 因此不应该使用 if request.POST来判断POST方法的使用, 而是使用 if request.method == “POST” .
  • COOKIES : 一个标准的Python字典, 包含所有的cookie. 键和值都是字符串.
    FILES : 一个类字典对象, 包含所有上传的文件. FILES的键来自 <input type="file" name="" /> 中的name. FILES包含以下三个键 :
    • filename : 字符串, 表示上传文件的文件名
    • content-type : 上传文件的内容类型.
    • content : 上传文件的原始内容.
  • META : 以字典形式, 返回所有有效的HTTP头信息. 在META中有效的任一HTTP头信息都是带有HTTP_前缀的键, 例如:
    • HTTP_ACCEPT_ENCODING
    • HTTP_ACCEPT_ENCODING
    • HTTP_ACCEPT_LANGUAGE
    • HTTP_HOST :客户端发送的 Host 头信息。
    • HTTP_REFERER :被指向的页面,如果存在的。
    • HTTP_USER_AGENT :客户端的user-agent字符串。
    • HTTP_X_BENDER : X-Bender 头信息的值, 如果已设的话。
  • user : 一个 django.contrib.auth.models.User 对象表示当前登录用户, 若当前用户尚未登录, user会设为 django.contrib.auth.models.AnonymousUser的一个实例, 可以使用 is_authenticated() 区分是否登录 :
if request.user.is_authenticated():
	# 已登录的处理
else: 
	# 未登录的处理
  • session : 一个可读写的字典对象, 表示当前session.
  • raw_post_data : POST的原始数据

HttpRequest对象的方法

  • __getitem__(key) : 请求所给键的GET/POST值, 先查找POST, 然后是GET. 若键不存在, 则引发KeyError异常.
  • has_key() : 返回True或False. 标识request.GET或request.POST是否包含所给的键.
  • get_full_path() : 返回path, 若请求字符串有效, 则附加在之前的path之后, 如 : "/music/bands/home/?print=true".
  • is_secure() : 如果请求是安全的, 返回True. 也就是说请求是以HTTPS的形式提交的
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值