1.HttpResponse、render、redirect介绍
导入方式:
from django.shortcuts import HttpResponse, render, redirect
1.1.HttpResponse
作用为:内部传递一个参数,返回给浏览器
from django.shortcuts import HttpResponse
def from_request(request):
# Todo
return HttpResponse('OK')
JosnResponse
是HttpResponse
的一个子类,JosnResponse
会自动把字典转换成josn
格式,HttpResponse
需要手动转换。
1.2.render
render会调用HttpResponse函数
可接受三个参数,分别为请求request
, 需要渲染的模板template
,以及向模板传递的参数context
,render(request, ‘template’, context)
原型
def render(request, template_name, context=None, content_type=None, status=None, using=None):
content = loader.render_to_string(template_name, context, request, using=using)
return HttpResponse(content, content_type, status)
使用方式
from django.shotcuts import render
def from_request(request):
# Todo
# return render(request, 'template.html', context)
# or
return render(request, 'template.html')
1.3.redirect
接受一个URL参数,表示让浏览器跳转去指定的URL.
原型
def redirect(to, *args, permanent=False, **kwargs):
redirect_class = HttpResponsePermanentRedirect if permanent else HttpResponseRedirect
return redirect_class(resolve_url(to, *args, **kwargs))
使用方式
from django.shotcuts import redirect
def from_request(request):
# Todo
return redirect(request, 'page')
2.Django请求和响应过程:
当一个web请求链接进来时,django会创建一个HttpRequest对象来封装和保存所有请求相关的信息,并且会根据请求路由载入匹配的view函数,每个请求的视图函数都会把HttpRequest作为参数,并且返回一个HttpResponse对象。
3.request对象常用属性
4.QueryDict
HttpRequest
对象中的GET
和POST
属性都是QueryDict
类的对象,与Python
字典很像,不同的是QueryDict
对象一个键可以保存多个值
4.1.get()方法
-
根据键获取值
-
如果一个键同时拥有多个值,将获取最后一个值
-
如果键不存在则返回None值,可以设置返回自定义的默认值
dict.get('键', 默认值)