【问题标题】:how to access a file from root of django project如何从 django 项目的根目录访问文件
【发布时间】:2018-10-12 07:38:42
【问题描述】:

我有一个 .html 文件。我想从我的 Django 网站访问这样的文件 (http://my_site_name.com/somefile.html)。 我不想使用静态文件夹。 谢谢

【问题讨论】:

标签: python django


【解决方案1】:

您不能这样做,您应该使用 url 和视图或直接使用 TemplateView 提供它。

from django.views.generic import TemplateView

urlpatterns = [
     (r'^somefile/$', TemplateView.as_view(template_name='somefile.html')),
]

【讨论】:

  • 我的文件是静态内容,永远不会改变(也不需要渲染成html),有什么办法不使用模板?
【解决方案2】:

如果你真的不想使用静态文件夹,为什么不把这个文件绑定到一个view函数,把它当作一个模板,并为它写路由呢?您可以使用TemplateView 来实现此目的。

如果您也不想触摸模板,还有另一种解决方案。

from django.contrib import admin
from django.urls import path
from django.http import HttpResponse
from django.conf import settings


def staticView(request):
    with open(settings.BASE_DIR+"/a.html") as fp:
        return HttpResponse(fp.read())

urlpatterns = [
    path('admin/', admin.site.urls),
    path('a.html',staticView)
]

如您所见,上面的代码只是读取一个 html 文件,并使用文件内容进行 HTTP 响应。没有Templatestatic folder,你可以把你的文件放到任何可以访问的目录中。

【讨论】:

    猜你喜欢
    • 2017-01-06
    • 2018-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    相关资源
    最近更新 更多