Django app范围问题

时间:2014-12-06 08:53:47

标签: python django database-design django-templates

我是Django的新手,我正在创建自己创建的网站,从前到后完成教程。

然而,目前有两个问题阻止我前进。作为背景:我是一名企业级Java开发人员,因此我熟悉数据库设计,外键以及实体/模型范围的重要性。此外,我使用php和mysql创建了网站,因此熟悉包括页眉/页脚/菜单等。由于Django使用模板继承来包含'包含'页面,与每页中包含每个页脚/页眉/菜单有很大不同。

对于这些问题,想象一下有人喜欢用Django重新创建youtube网站(只是假设! - 无论如何谁会想要这样做?)

  1. 如何定义应用范围?我阅读了多个来源(其中django网站)应用程序应该非常小,在我们的示例中可能是:评论应用程序,视频上传应用程序,建议的视频应用程序等。但是 - 在我看来 - 评论应该有一个外键给视频和用户的外键。如果有人设计一个评论应用程序,那么如何解决这些外键约束/依赖关系,因为他们需要指向不同的应用程序?或许,应该如何定位应用程序?

  2. 与问题1相关,关于模板......为单个应用设计视图和模板并不是一个真正的问题。但是,如何将多个应用程序结合在一起。例如,人们可以创建一个家庭'包含菜单,页眉,页脚,登录等的应用程序。但这意味着其他应用程序(如评论)需要扩展该视图,从而为家庭应用程序创建另一个依赖项。如何在django做到这一点?

  3. 请注意,我并不是在寻找完整的代码 - 尽管代码段可能有助于解释这些概念 - 但这些问题更具理论性。

1 个答案:

答案 0 :(得分:0)

你有点过分思考这个问题。应用程序实际上只是一个方便的代码分组。没有什么可以阻止应用程序在另一个应用程序中使用外键访问模型:实际上,或多或少需要这样做,特别是在链接到用户的情况下,因为它们是由contrib.auth应用程序提供的

关于模板,这不是专门针对应用程序,而是针对需要从多个位置收集数据的任何模板。通常的方法是使用自定义模板标记(可能是inclusion tags)来查询和呈现数据。