【问题标题】:Django static page?Django静态页面?
【发布时间】:2010-11-10 13:38:08
【问题描述】:

我想制作一个静态页面,只有当他/她点击我的一个模型中提供的链接时,才会向用户显示该页面。我可以通过单独创建一个 Python 页面并调用它来做到这一点,但我希望从 Django 调用它。用户界面应仅使用 Django API 构建。

有什么建议吗?

【问题讨论】:

  • 你能详细说明一下吗?例如。静态页面的内容需要在数据库中还是允许在文件中?是不是只有登录用户才能访问静态页面?

标签: django django-admin django-templates


【解决方案1】:

在较新的 Django 版本中使用基于类的视图,可以在 urls.py 中使用它:

from django.views.generic import TemplateView
url(r'^about', 
    TemplateView.as_view(template_name='path/to/about_us.html'),
    name='about'),

【讨论】:

  • 谢谢,这个答案现在取代了 Rubayeets。
  • url( 应该是path( 否?
【解决方案2】:

绕过视图呈现静态模板,在“urls.py”中添加这一行。例如“关于我们”页面可以是

(r'^about', 'django.views.generic.simple.direct_to_template', {'template': 'path/to/about_us.html'}),

【讨论】:

【解决方案3】:

你的意思是像 Django 的flatpages app 吗?它完全符合您的描述。

【讨论】:

  • 唯一的小不便(对于小型独立项目,我猜)是......它的优势 - 页面存储在数据库中,因此它不会与您的代码一起迁移到 prod。但无论如何,一旦它在 DB 中,很容易在 /admin 中维护它。
  • 不,由于版本控制,切换回 git'able 版本。
【解决方案4】:

如果您想制作静态页面,flatpages 是一个不错的选择。它允许您轻松创建静态内容。创建静态内容并不比创建视图难。

【讨论】:

    【解决方案5】:

    在 Django 2.2.6 上,大致按照 David 的回答,我在 urls.py 中添加了路径:

    from django.views.generic import TemplateView
    
    urlpatterns = [
        .... .... ....
        path('about',
             TemplateView.as_view(template_name='path/to/about_us.html'),
             name='about'),
    

    我需要调整 settings.py 来指定模板目录:

    TEMPLATES = [{
        ... ... ...
            'DIRS': [os.path.join(BASE_DIR, 'template')],
    

    然后我把实际内容保存在template/path/to/about_us.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-11
      • 2014-08-22
      • 2014-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 2013-02-20
      相关资源
      最近更新 更多