2

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

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

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

到目前为止,我一直在 urls.py 中为应用程序提供自己的 url。但是,如果我想在一个页面中将多个应用程序组合在一起,这将不起作用。

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

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

我应该为自己的应用程序做些什么?构造它们,使它们具有获取上下文的方法和呈现上下文的方法?

4

1 回答 1

0

Django 对面向组件的体系结构没有很好的开箱即用支持。我有时也觉得这有问题。你会在这里遇到问题。

  1. 建筑学
  2. 代码

架构:由于 Django 不是面向组件的,所以所有的应用程序也不是面向组件的。这些应用程序的设计者和编码人员没有考虑过这一点。所以他们刚刚建立了“视图”来与他们的应用程序交互。你需要得到一些更“可插拔”的东西。

代码:一旦你决定构建它,你就必须找到你为此提供的支持。大多数 Django 应用程序的代码都非常好,因此您不会在视图中包含太多代码,而是在其他地方进行抽象。这样您就可以重用该代码并构建自己的组件。

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

希望能帮助到你。

于 2012-12-18T17:47:06.463 回答