
Python Web之Django-views¶
1.http请求两个核心对象:¶
http请求:HttpRequest对象
http响应:HttpResponse对象
这两个对象在django.http中
之前views中的request就是HttpRequest
2.HttpRequest对象的属性和方法:¶
path:请求页面的全路径,不包含域名
method:请求中使用的HTTP方法的字符串表示。全大写表示。
req.method=='GET'
req.method==POST''
GET: 包含所有HTTP GET参数的类字典对象
POST: 包含所有HTTP POST参数的类字典对象
服务器收到空的POST请求的情况也是可能发生的,也就是说,表单form通过HTTP POST方法提交请求,但是表单中可能没有数据,因此不能使用if req.POST来判断是否使用了HTTP POST 方法;应该使用 if req.method=="POST"
#方法
get_full_path(), 比如:http://127.0.0.1:8000/index/?name=123 ,req.get_full_path()得到的结果就是/index?name=123
req.path:/index
request.POST.getlist('')
3.HttpResponse对象¶
对于HttpRequest对象来说,是由django自动创建的,但是,HttpResponse对象就必须我们自己创建。每个view请求处理方法必须返回一个HttpResponse对象。
页面渲染: render()(推荐)<br> render_to_response(),
页面跳转: redirect("路径")
locals(): 可以直接将函数中所有的变量传给模板
例如:
def register(request):
t=time.ctime()
name='xi'
render(request,'register.html',locals())
此处locals()便可以将所有的局部变量传给模板
render和redirect的区别:
render:只会返回页面内容,但是未发送第二次请求(页面内容更新,但浏览器上面链接不变,再刷新后又回到原来页面)
redirect:发挥了第二次请求,url更新