當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python Django serve用法及代碼示例


本文介紹 django.views.static.serve 的用法。

聲明

static.serve(request, path, document_root, show_indexes=False)

除了項目的靜態資產之外,可能還有其他文件,為了方便起見,您希望 Django 在本地開發中為您服務。 serve() 視圖可用於為您提供的任何目錄提供服務。 (此視圖未針對生產使用進行強化,僅應用作開發輔助;您應該使用真正的front-end Web 服務器在生產中提供這些文件)。

最可能的示例是 MEDIA_ROOT 中的 user-uploaded 內容。 django.contrib.staticfiles 適用於靜態資產,並且沒有對 user-uploaded 文件的內置處理,但是您可以通過將以下內容附加到 URLconf 來讓 Django 為您的 MEDIA_ROOT 提供服務:

from django.conf import settings
from django.urls import re_path
from django.views.static import serve

# ... the rest of your URLconf goes here ...

if settings.DEBUG:
    urlpatterns += [
        re_path(r'^media/(?P<path>.*)$', serve, {
            'document_root': settings.MEDIA_ROOT,
        }),
    ]

請注意,該片段假定您的 MEDIA_URL 的值為 'media/' 。這將調用 serve() 視圖,傳入來自 URLconf 的路徑和(必需的)document_root 參數。

由於定義這種 URL 模式可能會變得有點麻煩,Django 附帶了一個小的 URL 幫助函數 static() ,它將前綴(如 MEDIA_URL )和視圖的虛線路徑(如 'django.views.static.serve')作為參數。任何其他函數參數都將透明地傳遞給視圖。

相關用法


注:本文由純淨天空篩選整理自djangoproject.com大神的英文原創作品 django.views.static.serve。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。