Django快捷函数

    • render(request, template_name, context=None, content_type=None, status=None, using=None)[源代码]
    • 将给定的模板与给定的上下文字典组合在一起,并以渲染的文本返回一个 HttpResponse 对象。

    Django没有提供返回~django.template.response.TemplateResponse 的快捷函数,因为:class:~django.template.response.TemplateResponse 的构造函数提供了与render()`相同的方便程度。

    • request
    • 用于生成此响应的请求对象。
    • template_name
    • 要使用的模板的全名或模板名称的序列。如果给定一个序列,则将使用存在的第一个模板。有关如何查找模板的更多信息,请参见 template loading documentation

    可选参数

    • context
    • 要添加到模板上下文的值的字典。 默认情况下,这是一个空的字典。 如果字典中的值是可调用的,则视图将在渲染模板之前调用它。
    • content_type
    • 用于结果文档的MIME类型默认为:设置:setting:DEFAULT_CONTENT_TYPE 设置的值。
    • status
    • 响应的状态代码默认为“200”。
    • using
    • 用于加载模板的模板引擎的 `NAME ` 。

    下面的示例使用MIME类型呈现模板myapp/index.html application/xhtml+xml

    此示例相当于:

    1. from django.http import HttpResponse
    2. from django.template import loader
    3.  
    4. def my_view(request):
    5. # View code here...
    6. c = {'foo': 'bar'}
    7. return HttpResponse(t.render(c, request), content_type='application/xhtml+xml')
    • renderto_response(_template_name, context=None, content_type=None, status=None, using=None)

    2.0 版后已移除.

    该函数之前引入了:func:render ,并类似地工作,只是它不使响应中的 request 可用。

    • redirect(to, permanent=False, *args, **kwargs)
    • 将一个 返回到传递的参数的适当URL。
    • A model: the model's get_absolute_url()function will be called.
    • A view name, possibly with arguments: will beused to reverse-resolve the name.
    • An absolute or relative URL, which will be used as-is for the redirectlocation.
      By default issues a temporary redirect; pass permanent=True to issue apermanent redirect.

    示例

    You can use the function in a number of ways.

    • By passing some object; that object'sget_absolute_url() method will be calledto figure out the redirect URL:
    1. from django.shortcuts import redirect
    2.  
    3. def my_view(request):
    4. ...
    5. obj = MyModel.objects.get(...)
    6. return redirect(obj)
    • By passing the name of a view and optionally some positional orkeyword arguments; the URL will be reverse resolved using the method:
    1. def my_view(request):
    2. ...
    3. return redirect('some-view-name', foo='bar')
    • By passing a hardcoded URL to redirect to:
    1. def my_view(request):
    2. ...
    3. return redirect('/some/url/')

    This also works with full URLs:

    By default, redirect() returns a temporary redirect. All of the aboveforms accept a permanent argument; if set to True a permanent redirectwill be returned:

    1. def my_view(request):
    2. ...
    3. obj = MyModel.objects.get(...)
    4. return redirect(obj, permanent=True)
    • getobject_or_404(_klass, *args, **kwargs)
    • Calls on a given model manager,but it raises Http404 instead of the model's exception.
    • klass
    • A Model class,a ,or a QuerySet instance from which to getthe object.
    • Lookup parameters, which should be in the format accepted by get() andfilter().

    例如

    The following example gets the object with the primary key of 1 from:

    1. from django.shortcuts import get_object_or_404
    2.  
    3. def my_view(request):
    4. obj = get_object_or_404(MyModel, pk=1)

    此示例相当于:

    1. from django.http import Http404
    2.  
    3. def my_view(request):
    4. try:
    5. obj = MyModel.objects.get(pk=1)
    6. except MyModel.DoesNotExist:
    7. raise Http404("No MyModel matches the given query.")
    1. queryset = Book.objects.filter(title__startswith='M')
    2. get_object_or_404(queryset, pk=1)

    The above example is a bit contrived since it's equivalent to doing:

    but it can be useful if you are passed the queryset variable from somewhereelse.

    Finally, you can also use a Manager. This is usefulfor example if you have a:

    1. get_object_or_404(Book.dahl_objects, title='Matilda')

    You can also userelated managers:

    1. author = Author.objects.get(name='Roald Dahl')
    2. get_object_or_404(author.book_set, title='Matilda')

    Note: As with get(), a exceptionwill be raised if more than one object is found.

    • getlist_or_404(_klass, *args, **kwargs)[源代码]
    • Returns the result of filter() on agiven model manager cast to a list, raising ifthe resulting list is empty.
    • klass
    • A Model, orQuerySet instance from which to get thelist.
    • **kwargs
    • Lookup parameters, which should be in the format accepted by get() and.

    例如

    1. from django.shortcuts import get_list_or_404
    2.  
    3. def my_view(request):
    4. my_objects = get_list_or_404(MyModel, published=True)

    此示例相当于:

    1. from django.http import Http404
    2.  
    3. def my_view(request):
    4. my_objects = list(MyModel.objects.filter(published=True))
    5. if not my_objects: