在您自己的视图中集成django应用程序

时间:2012-12-18 17:06:20

标签: django django-templates django-views

假设我在django中使用wiki,论坛等编写一个复杂的网站,或者编写自己的应用程序,我打算从不同的网站重复使用。

我真的想创建一个在底部有一个论坛的wiki页面,或者重用我之前编写的具有不同图形布局的wiki应用程序。

构建我的应用程序以允许这种重用的最佳方法是什么?

到目前为止,我一直在urls.py中为应用提供自己的网址。但是,如果我想在一个页面中将多个应用程序组合在一起,则无法使用此功能。

此外,我在网上找到的大多数应用程序都带有自己的模板,这些模板具有完整的html,并且不会将创建/准备上下文的逻辑与处理请求和生成回复的逻辑分开。

这里的最佳做法是什么?你是做什么?编辑来自您在线下载的应用程序的模板?重构它们以适应您的应用程序?

我应该为自己的应用程序做些什么?构造它们以便它们有一个获取上下文的方法,以及一个渲染它的方法吗?

1 个答案:

答案 0 :(得分:0)

Django没有很好的支持开箱即用的面向组件的架构。我有时也发现这个问题。你会遇到问题。

  1. 建筑
  2. 架构:由于Django不是面向组件的,因此所有应用程序都不是面向组件的。这些应用程序的设计者和编码员没有考虑过这一点。所以他们只是建立了“视图”来与他们的应用程序进行交互。你需要获得更多“可插拔”的东西。

    代码:一旦你决定构建它,你将不得不找到你的支持。大多数Django应用程序编码都很好,因此您在视图中不会有太多代码,而是在其他地方抽象。这样您就可以重用该代码并构建自己的组件。

    示例:假设您正在使用第三方Wiki应用。该wiki可以显示排名最高的标签和其他视图以创建Wiki条目。如果代码足够好(我假设它是因为Django有一个非常好的社区),你可以重构它以使用组件。创建条目的视图必须使用某个表单,您可以插入自己的站点。获得排名最高的标签的视图可能使用一些效用函数或一些标记管理器的方法。在这种情况下,您可以根据自己的需要进行重构。

    希望它有所帮助。