Django补充的内容
- request
- redirect
- context
1.request
Django使用request和response对象在整个系统中传递状态的。
一旦页面被请求,Django创建一个HttpRequest的对象request,里面存有一些元数据。
常用的一些属性:
- HttpRequest.body 传递原生的二进制字符串
- HttpRequest.path 被请求页的完整路径
- HttpRequest.method 请求的方式
- HttpRequest.encoding 当前解码方式
- HttpRequest.GET 一个保存get参数的字典
- HttpRequest.POST 一个保存POST参数的字典
- HttpRequest.META 一个保存可用的http头的字典
- HttpRequest.user 当前请求的用户对象
2.redirect():
可传递的参数:
一个模型对象:这个模型的get_absolute_url() 会被调用。
一个视图名称,可带参数,该视图会被反向生成。
一个绝对路径或相对路径,用作反向定位。
from django.shortcuts import redirect
def my_view(request):
...
object = MyModel.objects.get(...)
return redirect(object)
def my_view(request):
...
return redirect('some-view-name', foo='bar')
def my_view(request):
...
return redirect('/some/url/')
def my_view(request):
...
return redirect('https://example.com/')
默认返回的是暂时的redirect,可以使用参数使其持久化:
def my_view(request):
...
object = MyModel.objects.get(...)
return redirect(object, permanent=True)
3.context:
context是个字典类型的对象。
context对象一般在使用render时作为参数,context将会传递到template中,然后被使用。
常用的对象方法:
- Context.get(key):
返回key对应的value
- Context.update(dict):
传递一个字典,把字典内容更新到Context中。