如何和谐地编写 django webapps?
Posted
技术标签:
【中文标题】如何和谐地编写 django webapps?【英文标题】:How to harmonically compose django webapps? 【发布时间】:2013-01-07 16:23:00 【问题描述】:Django 的理念是关于 webapps 的可重用性。但是如何实现不同webapp之间的模板和谐呢?
这是一个假设示例:我想重新使用 webapp 1(例如,django_openid)来启用 OpenID 登录;我想重用 webapp 2(例如,django invitation app)来邀请客户;我想编写自己的统计应用程序(MTV)
但他们的模板通常看起来并不属于单个项目。如何以最少的干扰工作重用现有工作(上述假设示例中的 Web 应用 1 和 Web 应用 2)?
【问题讨论】:
【参考方案1】:我假设“侵入式”是指在可重用应用程序中编辑文件。
在完全不打扰的情况下,您应该能够覆盖可重用应用程序中的任何模板,方法是将它们放在项目级模板目录中,或者通过在您自己的应用程序中提供具有匹配名称的模板。
Django 模板加载是完全可配置的,但默认情况下,它将首先在设置中命名为TEMPLATE_DIRS
的目录中查找,然后在每个已安装应用程序的templates
目录中查找,按照它们出现的顺序。通过将您的应用放在 INSTALLED_APPS 中的 openid 或邀请之前,您的自定义模板将被加载,而不是提供的模板。
在某些情况下,我为一个项目创建了一个“应用程序”,它实际上只是一个空的 models.py 和一组模板。然后我有一个地方来存储站点基础模板,以及来自其他应用程序的所有覆盖模板。
【讨论】:
为什么要一个空的应用程序呢?您提到了 TEMPLATE_DIRS ...该目录就足够了 IMO :)【参考方案2】:django invitation app
与大多数可重复使用的应用程序一样,具有带有 usage 部分的文档。这将解释如何在您的项目中重用该应用程序。
根据自述文件,django_openid
似乎“尚未准备好”,因此您需要深入研究代码才能使用它。
一般来说,您需要转到您尝试重用的应用程序的文档并查找使用/实现部分。
【讨论】:
以上是关于如何和谐地编写 django webapps?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Django 的标记模板标签与 Google App Engine WebApp 框架一起使用
Caused by: Unable to load configuration. - action - file:/C:/apache-tomcat-7.0.70/webapps/Structs/WE