下面来说说常见的视图函数:
HttpResponse()
Http404()
HttpResponseNotFound()
上面三个函数功能比较简单,用得少,就不多说了!
render()
render
(request, template_name, context=None, content_type=None, status=None, using=None)[source]¶- 将模板和字典联系起来,最终返回一个HttpResponse对象。
- 必须参数:
- request
- 用来生成response的request对象。
- template_name
- 模板名称。
- 可选参数:
- context
- 传递值给模板的字典。
- content_type
- MIME标签,默认使用settings中的
DEFAULT_CONTENT_TYPE
。 - status
- 状态码,默认200.
- using
- 模板引擎的名称。
- render_to_response()
render_to_response
(template_name, context=None, content_type=None, status=None, using=None)[source]¶- 未来该函数可能被放弃,不做多介绍!
- redict()
redirect
(to, permanent=False, *args, **kwargs)[source]¶- 返回一个
HttpResponseRedirect
对象。 - 参数to可以能的值:
- 模型:模型的
get_absolute_url() 函数。
- 函数:
reverse()
。 - 一个绝对URL或者相对的URL。
- 默认使用临时重定向,permanent=True为永久重定向。
# 模型,默认该模型的 get_absolute_url()函数会被调用
from django.shortcuts import redirect
def my_view(request):
...
object = MyModel.objects.get(...)
return redirect(object)
# reverse()方法
def my_view(request):
...
return redirect('some-view-name', foo='bar')
# URL
def my_view(request):
...
return redirect('/some/url/')
def my_view(request):
...
return redirect('https://example.com/')
get_object_or_404()
get_object_or_404
(klass, *args, **kwargs)[source]¶- 对模型类或者模型manager调用
get(),但是返回Http404()而不是模型不存在。
- 必需参数:
- klass
- 模型,模型的manager或者QuerySet实例。
- *args
- 查询参数,用来传递给
get()
andfilter()
def my_view(request):
my_object = get_object_or_404(MyModel, pk=1)