Django基于类的视图和URL配置

时间:2018-09-25 18:45:54

标签: python django

我正在尝试学习Django,但仍受基于类的视图和URLconf的困扰。据我了解,我应该在localhost/app1/test1/test/test.html看到我的test.html,但是我发现未找到错误页面。我不确定自己在做什么错。

#~/project_folder/mysite/ulrs.py
urlpatterns = [
path('admin/', admin.site.urls),
path('app1/test1/', include("app1.urls")),
]

#~/project_folder/app1/urls.py
urlpatterns = [
path('test/', TemplateView.as_view(template_name="test.html"), name="home"),
]

#~/project_folder/static/templates
test.html

#~/project_folder/mysite/settings.py
TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [
        os.path.join(BASE_DIR, 'static/templates'),
    ],
    'APP_DIRS': True,
...
}

STATIC_URL = os.path.join(BASE_DIR, 'static/')

1 个答案:

答案 0 :(得分:0)

  • 不应将Django html模板视为静态文件,它们的常规路径类似于"app/templates/app"(检查教程和演示项目)
  • 模板文件名不向最终用户公开,也不参与url路径,因此 此特定设置

    path('app1/test1/', include("app1.urls")), path('test/', TemplateView.as_view(template_name="test.html"), name="home"),

实际上是指:要对网址app1/test1/test/请求进行响应,请使用test.html模板。如果将模板文件名重命名为"whatever-foo-bar-my-template.html",则网址不会更改。