Built-in Views内置视图
Django的几个内置视图在文档视图以及文档中的其他地方都有记录。
Serving files in development在开发中提供文件
static.serve(request, path, document_root, show_indexes=False)
除了项目的静态资产之外,可能还有其他文件,为方便起见,您希望Django为您提供本地开发服务。serve()
视图可以用于为您提供的任何目录。 (此视图未被强化以供生产使用,应仅用作开发帮助;您应使用真正的前端Web服务器在生产中提供这些文件)。
最有可能的例子是MEDIA_ROOT
中用户上传的内容。 django.contrib.staticfiles
旨在用于静态资源,并且没有用户上传的文件的内置处理,但您可以通过在URLconf
中附加这样的内容来使Django
为您的MEDIA_ROOT
提供服务:
from django.conf import settings
from django.views.static import serve
# ... the rest of your URLconf goes here ...
if settings.DEBUG:
urlpatterns += [
url(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”
。 服务’。 任何其他函数参数将被透明地传递给视图。