HttpRequest对象
服务器接收到http协议的请求后,会根据报文创建HttpRequest对象,然后将其传递给视图函数
属性
- 下列属性中,除特殊说明都是只读的
- path:一个字符串,表示请求页面的完整路径,不包含域名
- method:一个字符串,表示请求使用的http方法,常用值包括:‘GET’,‘POST’
- encoding:一个字符串,表示提交数据的编码方式,这个属性是可写的
- GET:一个类似于字典的对象,包含get请求方式的所有参数
- POST:一个类似于字典的对象,包含post请求方式的所有参数
方法
- is_ajax():如果请求是通过XMLHttpRequest发起的,则返回True
QueryDict对象
- 定义在django.http.QueryDict
- request对象的属性GET,POST都是QueryDict类型的对象
- 与python字典不同,QueryDict类型的对象用来处理同一个键带有多个值的情况
方法get():根据键获取值
- 只能获取键的一个值
- 如果一个键同时拥有多个值,获取最后一个值
dict.get(‘键’,default)
或简写为
dict{‘键’}
方法getlist():根据键获取值
- 将键的值以列表返回,可以获取一个键的多个值
dict.getlist(‘键’,default)
- 将键的值以列表返回,可以获取一个键的多个值
GET属性
- QueryDict类型的对象
- 包含get请求方式的所有参数
- 与url请求地址中的参数对应,位于?后面
- 参数的格式是键值对,多个参数用&连接
POST属性
- QueryDict类型的对象
- 包含post请求方式的所有参数
- 与form表单中的控件对应
HttpResponse对象
- 在django.http模块中定义了HttpResponse对象的API
- HttpRequest对象由Django自动创建,HttpResponse由程序员创建
- 不调用模板,直接返回数据
# coding=utf-8 from django.http import HttpResponse def index(request): return HttpResponse('你好')
- 调用模板
目前大多推荐使用render的方式
render
- render是HttpResponse的简写函数
- 语法为:render(request,template_name[,context])
- 结合一个给定的模板和一个给定的上下文字典,并返回一个HttpResponse对象
- request:该request用于生成reponse
- template_name:要使用完整的模板名称
- context:添加到模板上下文的一个字典,视图将在渲染模板之前调用它
from django.shortcuts import render def index(request): return render(request,'booktest/html',{'h1':'hello'})
重定向
- redirect(to)
- 为传递进来的参数返回HttpResponseRedirect
- to推荐使用反向解析
from django.shortcuts import redirect from django,core.urlresolvers import reverse def index(request): return redirect(reverse('booktest:index2'))