【文件属性】:
文件名称:从请求对象中获取数据-libmodbus源码解析
文件大小:7.37MB
文件格式:PDF
更新时间:2021-06-24 08:00:35
PDF
6.1从请求对象中获取数据
第 2 章首次介绍视图函数时提到过 HttpRequest对象,但是没有细讲。还记得吗,每个视图函数的第一个参
数都是一个 HttpRequest对象,如下面的 hello()视图所示:
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello world")
HttpRequest对象,如这里的 request参数,有一些有用的属性和方法,你应该有所了解,这样才知道有什么
可用。执行视图函数时,可以使用这些属性获取关于当前请求(即用户在 Web 浏览器中访问 Django 驱动的
网站中的某个页面)的信息。
6.1.1关于 URL 的信息
HttpRequest对象中有一些关于当前所请求 URL 的信息(表 6-1)。
表 6-1:HttpRequest对象的方法和属性
属性/方法 说明 示例
request.path
完整的路径,不含域名,但是包
含前导斜线
“/hello/”
request.get_host() 主机名(即通常所说的“域名”) “127.0.0.1:8000”或“www.exam-ple.com”
request.get_full_path()
包含查询字符串(如果有的话)
的路径
“/hello/?print=true”
request.is_secure()
通过 HTTPS 访问时为 True,否
则为 False
True或 False
在视图中一定要使用这些属性或方法,不能硬编码 URL。这样写出的代码更灵活,便于在不同的地方复用。
下面举个简单的例子:
# 不好
def current_url_view_bad(request):
return HttpResponse("Welcome to the page at /current/")
83