博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Django视图之视图函数

Posted on 2017-11-07 17:23  开飞机的贝塔  阅读(161)  评论(0编辑  收藏  举报

下面来说说常见的视图函数:

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可以能的值:
默认使用临时重定向,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() and filter()
def my_view(request):
    my_object = get_object_or_404(MyModel, pk=1)