Django Direct_to_template 或平面页面
Posted
技术标签:
【中文标题】Django Direct_to_template 或平面页面【英文标题】:Django Direct_to_template or flatpages 【发布时间】:2010-08-17 17:05:57 【问题描述】:构建一个 django 应用程序,在网站前面有一些主要是静态页面,例如about.html 常见问题.html
那种东西
我正在研究 urls.py 的工作原理并创建了它。
('(.+\.html)$', direct_to_template),
它似乎完全符合我的需要。现在,对于我添加到模板文件夹根目录的任何新 .html 页面,它都可以正常工作。模板/about.html 模板/faq.hml
我也可以在我的模板中使用类似的东西
% include "_menu.html" %
现在有人好心地指出了 Django FlatPages,并建议我可以改用它们。如果我没有连接到数据库,我这样做的方式是否有任何缺点。
在我看来,它是比 FlatPages 更好的方法,因为它使用 db 并且不是很优雅(但实际上并没有在实践中使用 flatpages)
【问题讨论】:
【参考方案1】:如果您可以直接编辑模板文件并手动将新模板文件添加到您的 urls.py 文件中,那么请坚持使用现有的内容。如果您希望能够从管理界面或任何您可能关心设计的基于 Web 的编辑工具编辑页面内容,或者更重要的是:如果您希望非技术用户能够编辑页面内容,Flatpages 很有用内容。
【讨论】:
我认为你没有抓住重点。使用这个解决方案,我根本不需要编辑 urls.py 文件。如果我想要一个新文件,比如 example.com/terms.html,我所要做的就是创建新的 html 文件并将其保存到我的模板文件夹中......完成。不过,我确实了解 CMS 部分。 抱歉,我读得太快了。听起来你的方式很好;过度设计某些东西是没有意义的。【参考方案2】:我建议更进一步。如果您的静态内容不经常更改并且不使用 Django 的模板,那么不要使用 Django 来为它们提供服务。请改用 nginx 等轻量级服务器。
如果您确实使用 Django 的模板功能而不需要数据库中的任何动态内容,那么您可以坚持使用direct_to_template
。
【讨论】:
agh.. 所以我的方法是 +1。 :) 如果您正在寻找基于类的视图的 direct_to_template 替代方案,请查看此答案***.com/a/12150035/742390【参考方案3】:使用 FlatPages 的一个优点是,您可以使用 Django 模板来制作页眉、侧边栏、页脚(以保持一致的网站外观),同时仍然主要使用纯 HTML 作为页面内容。这被将页面内容存储在数据库表中的需要所抵消。
我的建议?如果您正在做的是满足您的需求,请坚持有效的方法。
【讨论】:
以上是关于Django Direct_to_template 或平面页面的主要内容,如果未能解决你的问题,请参考以下文章
将 Django direct_to_template 函数转换为使用基于类的视图
django 1.9 中的 from django.views.generic.simple import direct_to_template 相当于啥