我是Django的新手,我正在做一个具有多种功能的项目。我打算将其分解为较小的部分。因此,我计划要做的是将所有模板都放在main.html中,并将功能放入不同的小型应用程序中。
--main_app
--templates
--main.html
--app_1
--app1_view.py
--app_2
--app2_view.py
所以我的问题是如何将main.html模板与我在不同应用程序视图中编写的不同逻辑链接。谁能指出我适当的文件或例子。谢谢。
答案 0 :(得分:2)
我为静态文件建模的方式如下:
--main_app
--templates
-- main_app
-- main.html
-- other.html
-- some_other.html
--static
-- main_app
--css
--js
--images
如果保持这样的目录结构。然后,您可以轻松地在任何视图中引用main.html作为 main_app / main.html
这听起来很奇怪,但是建议这样做的方式是django。现在,您可以轻松复制整个应用程序并将其粘贴到另一个项目中,而不必担心静态文件管理。
答案 1 :(得分:0)
Django建议使用正确的方法来构建模板。遵循框架本身推荐的方法是一种很好的做法。开发软件时,应遵循一组“最佳实践” 。这些“最佳实践”使您的代码完美,易于移植且易于阅读。因此,请始终遵循最佳实践。
现在,对于您的问题,最佳实践是将与特定Django应用相关的所有“模板”保留在该特定应用文件夹中。
这是一个场景:
您正在建立一个博客。而且您将博客帖子称为“应用程序”,名称为“ posts”。现在,您处理博客帖子的所有模板,例如“ blog_post_details”(列出单个博客文章的完整详细信息),“ blog_posts_home”(收集并列出所有最近的博客文章),“ category_blog_posts”(列出所有类别特定的博客文章)等等-有关博客帖子的所有此类模板都应在名为“ posts”的应用文件夹中创建。
方法如下:
在名为“ posts”的应用程序内创建名为“ templates”的文件夹 现在,在“模板”文件夹中创建另一个名为“帖子”的文件夹
现在,在此名为“ posts”的子文件夹(位于模板文件夹中)中创建所有HTML文件。
访问方式:
从您应用程序中的任何地方,甚至从另一个应用程序,您都可以通过编写“ posts / template_name.html”来访问模板
如果您将名为“ post_detail.html”的模板保存在“帖子”文件夹中。这是您的访问方式。
在任何应用程序内:
def details(request):
return render(request, 'posts/post_details.html')
我希望你明白。始终遵循最佳实践。