注:以下内容转载自 现代魔法学院 网站的 先来了解HttpRequest对象 一文,仅供学习使用。
从Google的简朴的单个搜索框,到常见的Blog评论提交表单,再到复杂的自定义数据输入接口,HTML表单一直是交互性网站的支柱。该篇主要介绍 Django 对用户通过表单提交的数据进行访问、有效性检查以及其它处理。在这之前,我们得先来了解一下 HttpRequest 对象。
Request对象里包含的数据
前面讲述 View 的函数时已经介绍过 HttpRequest 对象了,但当时并没有讲太多。让我们回忆下:每个 view 函数的第一个参数是一个 HttpRequest 对象,就像下面这个 hello() 函数:
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello NowaMagic")
HttpRequest 对象,比如上面代码里的 request 变量,会有一些有趣的、你必须让自己熟悉的属性和方法,以便知道能拿它们来做些什么。在 view 函数的执行过程中,你可以用这些属性来获取当前 request 的一些信息(比如,你正在加载这个页面的用户是谁,或者用的是什么浏览器)。
有关URL的信息
HttpRequest 对象包含当前请求 URL 的一些信息:
属性/方法 | 说明 | 举例 |
---|---|---|
request.path | 除域名以外的请求路径,以正斜杠开头 | "/hello/" |
request.get_host() | 主机名(比如,通常所说的域名) | "127.0.0.1:8000" "www.example.com" |
request.get_full_path() | 请求路径,可能包含查询字符串 | "/hello/?print=true" |
request.is_secure() | 如果通过HTTPS访问,则此方法返回True, 否则返回False | True 或者 False |
在 view 函数里,要始终用这个属性或方法来得到 URL,而不要手动输入。这会使得代码更加灵活,以便在其它地方重用。下面是一个简单的例子:
def current_url_view(request):
return HttpResponse("Welcome to the page at %s" % request.path)
配置 URL 规则
('^current_url/$', current_url_view),
运行,显示为:
Welcome to the page at /current_url/