<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Django 的快捷函數 # `django.shortcuts` 收集了“跨越” 多層MVC 的輔助函數和類。 換句話講,這些函數/類為了方便,引入了可控的耦合。 ## render ## `render(request, template_name[, context][, context_instance][, content_type][, status][, current_app][, dirs][, using])[source]` 結合一個給定的模板和一個給定的上下文字典,并返回一個渲染后的 `HttpResponse` 對象。 `render()` 與以一個強制使用`RequestContext`的`context_instance` 參數調用`render_to_response()` 相同。 Django 不提供返回`TemplateResponse` 的快捷函數,因為`TemplateResponse` 的構造與`render()` 提供的便利是一個層次的。 ### 必選的參數 ### `request` 用于生成響應的請求對象。 `template_name` 要使用的模板的完整名稱或者模板名稱的一個序列。 ### 可選的參數 ### `context` 添加到模板上下文的一個字典。默認是一個空字典。如果字典中的某個值是可調用的,視圖將在渲染模板之前調用它。 ``` Django 1.8 的改變: context 參數之前叫做dictionary。這個名字在Django 1.8 中廢棄并將在Django 2.0 中刪除。 ``` `context_instance` 渲染模板的上下文實例。默認情況下,模板將使用`RequestContext` 實例( 值來自`request` 和`context`)渲染。 ``` 版本 1.8 以后廢棄: 廢棄context_instance 參數。僅僅使用context。 ``` `content_type` 生成的文檔要使用的MIME 類型。默認為`DEFAULT_CONTENT_TYPE` 設置的值。 `status` 響應的狀態碼。默認為200。 `current_app` 指示哪個應用包含當前的視圖。更多信息,參見[帶命名空間的URL 的解析](http://python.usyiyi.cn/django/topics/http/urls.html#topics-http-reversing-url-namespaces)。 ``` 版本1.8 以后廢棄: 廢棄current_app 參數。你應該設置request.current_app。 ``` `using` 用于加載模板使用的模板引擎的名稱。 ``` Changed in Django 1.8: 增加using 參數。 ``` ``` Changed in Django 1.7: 增加dirs 參數。 ``` ``` Deprecated since version 1.8: 廢棄dirs 參數。 ``` ## 示例 ## 下面的示例渲染模板`myapp/index.html`,MIME 類型為`application/xhtml+xml`: ``` from django.shortcuts import render def my_view(request): # View code here... return render(request, 'myapp/index.html', {"foo": "bar"}, content_type="application/xhtml+xml") ``` 這個示例等同于: ``` from django.http import HttpResponse from django.template import RequestContext, loader def my_view(request): # View code here... t = loader.get_template('myapp/index.html') c = RequestContext(request, {'foo': 'bar'}) return HttpResponse(t.render(c), content_type="application/xhtml+xml") ``` ## render_to_response ## `render_to_response(template_name[, context][, context_instance][, content_type][, status][, dirs][, using])[source]` 根據一個給定的上下文字典渲染一個給定的目標,并返回渲染后的HttpResponse。 ### 必選的參數 ### `template_name` 使用的模板的完整名稱或者模板名稱的序列。如果給出的是一個序列,將使用存在的第一個模板。關于如何查找模板的更多信息請參見 模板加載的文檔 。 ### 可選的參數 ### `context` 添加到模板上下文中的字典。默認是個空字典。如果字典中的某個值是可調用的,視圖將在渲染模板之前調用它。 ``` Changed in Django 1.8: context 參數之前叫做dictionary。 這個名字在Django 1.8 中廢棄并將在Django 2.0 中刪除。 ``` `context_instance` 渲染模板使用的上下文實例。默認情況下,模板將`Context` 實例(值來自`context`)渲染。如果你需要使用上下文處理器,請使用`RequestContext` 實例渲染模板。你的代碼看上去像是這樣: ``` return render_to_response('my_template.html', my_context, context_instance=RequestContext(request)) ``` ``` 版本1.8 以后廢棄: 廢棄context_instance 參數。 僅僅使用context。 ``` `content_type` 生成的文檔使用的MIME 類型。默認為`DEFAULT_CONTENT_TYPE` 設置的值。 `status` 相應的狀態碼。默認為200。 `using` 加載模板使用的模板引擎的名稱。 ``` Changed in Django 1.8: 添加status 和using 參數。 ``` ``` Changed in Django 1.7: 增加dirs 參數。 ``` ``` Deprecated since version 1.8: 廢棄dirs 參數。 ``` ## 示例 ## 下面的示例渲染模板`myapp/index.html`,MIIME 類型為`application/xhtml+xml`: ``` from django.shortcuts import render_to_response def my_view(request): # View code here... return render_to_response('myapp/index.html', {"foo": "bar"}, content_type="application/xhtml+xml") ``` 這個示例等同于: ``` from django.http import HttpResponse from django.template import Context, loader def my_view(request): # View code here... t = loader.get_template('myapp/index.html') c = Context({'foo': 'bar'}) return HttpResponse(t.render(c), content_type="application/xhtml+xml") ``` ## redirect ## `redirect(to, [permanent=False, ]*args, **kwargs)[source]` 為傳遞進來的參數返回HttpResponseRedirect 給正確的URL 。 參數可以是: + 一個模型:將調用模型的`get_absolute_url()` 函數 + 一個視圖,可以帶有參數:將使用`urlresolvers.reverse` 來反向解析名稱 + 一個絕對的或相對的URL,將原樣作為重定向的位置。 默認返回一個臨時的重定向;傳遞`permanent=True `可以返回一個永久的重定向。 ``` Django 1.7 中的改變: 增加使用相對URL 的功能。 ``` ## 示例 ## 你可以用多種方式使用`redirect()` 函數。 通過傳遞一個對象;將調用`get_absolute_url()` 方法來獲取重定向的URL: ``` from django.shortcuts import redirect def my_view(request): ... object = MyModel.objects.get(...) return redirect(object) ``` 通過傳遞一個視圖的名稱,可以帶有位置參數和關鍵字參數;將使用`reverse()` 方法反向解析URL: ``` def my_view(request): ... return redirect('some-view-name', foo='bar') ``` 傳遞要重定向的一個硬編碼的URL: ``` def my_view(request): ... return redirect('/some/url/') ``` 完整的URL 也可以: ``` def my_view(request): ... return redirect('http://example.com/') ``` 默認情況下,`redirect()` 返回一個臨時重定向。以上所有的形式都接收一個`permanent` 參數;如果設置為`True`,將返回一個永久的重定向: ``` def my_view(request): ... object = MyModel.objects.get(...) return redirect(object, permanent=True) ``` ## get_object_or_404 ## `get_object_or_404(klass, *args, **kwargs)[source]` 在一個給定的模型管理器上調用`get()`,但是引發`Http404` 而不是模型的`DoesNotExist` 異常。 ### 必選的參數 ### `klass` 獲取該對象的一個`Model` 類,`Manager`或`QuerySet` 實例。 `**kwargs` 查詢的參數,格式應該可以被`get()` 和`filter()`接受。 ## 示例 ## 下面的示例從`MyModel` 中使用主鍵1 來獲取對象: ``` from django.shortcuts import get_object_or_404 def my_view(request): my_object = get_object_or_404(MyModel, pk=1) ``` 這個示例等同于: ``` from django.http import Http404 def my_view(request): try: my_object = MyModel.objects.get(pk=1) except MyModel.DoesNotExist: raise Http404("No MyModel matches the given query.") ``` 最常見的用法是傳遞一個 `Model`,如上所示。然而,你還可以傳遞一個`QuerySet `實例: ``` queryset = Book.objects.filter(title__startswith='M') get_object_or_404(queryset, pk=1) ``` 上面的示例有點做作,因為它等同于: ``` get_object_or_404(Book, title__startswith='M', pk=1) ``` 但是如果你的queryset 來自其它地方,它就會很有用了。 最后你還可以使用一個管理器。如果你有一個自定義的管理器,它將很有用: ``` get_object_or_404(Book.dahl_objects, title='Matilda') ``` 你還可以使用關聯的 管理器: ``` author = Author.objects.get(name='Roald Dahl') get_object_or_404(author.book_set, title='Matilda') ``` 注:與get()一樣,如果找到多個對象將引發一個`MultipleObjectsReturned` 異常。 ## get_list_or_404 ## `get_list_or_404(klass, *args, **kwargs)[source]` 返回一個給定模型管理器上filter() 的結果,并將結果映射為一個列表,如果結果為空則返回Http404。 ## 必選的參數 ## `klass` 獲取該列表的一個`Model`、`Manager` 或`QuerySet` 實例。 `**kwargs` 查尋的參數,格式應該可以被`get()` 和`filter()` 接受。 示例 下面的示例從`MyModel` 中獲取所有發布出來的對象: ``` from django.shortcuts import get_list_or_404 def my_view(request): my_objects = get_list_or_404(MyModel, published=True) ``` 這個示例等同于: ``` from django.http import Http404 def my_view(request): my_objects = list(MyModel.objects.filter(published=True)) if not my_objects: raise Http404("No MyModel matches the given query.") ``` > 譯者:[Django 文檔協作翻譯小組](http://python.usyiyi.cn/django/index.html),原文:[Shortcuts](https://docs.djangoproject.com/en/1.8/topics/http/shortcuts/)。 > > 本文以 [CC BY-NC-SA 3.0](http://creativecommons.org/licenses/by-nc-sa/3.0/cn/) 協議發布,轉載請保留作者署名和文章出處。 > > [Django 文檔協作翻譯小組](http://python.usyiyi.cn/django/index.html)人手緊缺,有興趣的朋友可以加入我們,完全公益性質。交流群:467338606。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看