如何在Django中将一个应用程序中的视图调用到另一个应用程序中的模板

时间:2018-06-25 15:50:18

标签: django django-templates django-views

我是Django的新手,我正在做一个具有多种功能的项目。我打算将其分解为较小的部分。因此,我计划要做的是将所有模板都放在main.html中,并将功能放入不同的小型应用程序中。

--main_app
  --templates
    --main.html
--app_1
  --app1_view.py
--app_2
  --app2_view.py

所以我的问题是如何将main.html模板与我在不同应用程序视图中编写的不同逻辑链接。谁能指出我适当的文件或例子。谢谢。

2 个答案:

答案 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')

我希望你明白。始终遵循最佳实践。