Django的视图层
HttpRequest对象
Request属性
-request.GET get的请求数据 字典格式
-request.POST post的请求数据 字典格式
-request.method 请求方式
-request.path 请求路径
-request.META 请求头 包含所有的HTTP 首部。具体的头部信息取决于客户端和服务器
request常用方法
/* 1.HttpRequest.get_full_path() 返回 path,如果可以将加上查询字符串。 例如:"/music/bands/the_beatles/?print=true" 2.HttpRequest.is_ajax() 如果请求是通过XMLHttpRequest 发起的,则返回True,方法是检查 HTTP_X_REQUESTED_WITH 相应的首部是否是字符串'XMLHttpRequest'。 大部分现代的 JavaScript 库都会发送这个头部。如果你编写自己的 XMLHttpRequest 调用(在浏览器端),你必须手工设置这个值来让 is_ajax() 可以工作。 如果一个响应需要根据请求是否是通过AJAX 发起的,并且你正在使用某种形式的缓存例如Django 的 cache middleware, 你应该使用 vary_on_headers('HTTP_X_REQUESTED_WITH') 装饰你的视图以让响应能够正确地缓存。 */
HttpResponse对象
- HttpResponse('字符串')
- HttpResponse()括号内直接跟一个具体的字符串作为响应体,比较直接很简单,所以这里主要介绍后面两种形式。
- Render()
- 读取文件字符串
- 渲染变量
1 render(request, template_name[, context]) 2 3 结合一个给定的模板和一个给定的上下文字典,并返回一个渲染后的 HttpResponse 对象。
参数: request: 用于生成响应的请求对象。 template_name:要使用的模板的完整名称,可选的参数 context:添加到模板上下文的一个字典。默认是一个空字典。如果字典中的某个值是可调用的,视图将在渲染模板之前调用它。
render方法就是将一个模板页面中的模板语法进行渲染,最终渲染成一个html页面作为响应体。
- redirect
传递要重定向的一个硬编码的URL
1 def my_view(request): 2 ... 3 return redirect('/some/url/')
也可以是一个完整的URL:
1 def my_view(request): 2 ... 3 return redirect('http://example.com/')