16

如果 app/views.py 文件变得非常大,我应该把它分开吗?如果是这样,最好的方法是什么?

4

4 回答 4

25

一些开发人员将他们的视图制作为python 包而不是模块。这只是意味着在您的应用程序中创建一个目录views,然后将每个视图放在该包中自己的模块(文件)中。

然后你创建一个__init__.py文件(这就是使它成为一个包的原因)。该文件可以是空的,也可以将所有视图模块导入到它自己的命名空间中。

如果它是空的,你必须直接导入你需要的每个视图,否则你可以导入它,就像它是一个 views.py 模块一样。

于 2009-03-30T08:34:33.543 回答
12

没有通用的最佳方法。但是有适合您情况的正确方法。

  • 将视图放在它们自己的文件中并将它们导入到您的视图中。这很好,只是看看它是如何工作的
  • 在项目中创建一个单独的应用程序来维护一组视图
  • 创建您自己的通用视图,共享大多数应用程序的通用视图

就像一个开始的例子: 我建议你从模型开始,自己动手:

  • 你有多少型号?
  • 它们实际上都相关还是可以分组?
  • 如果可以分组将应用程序分成两个应用程序
  • 所以你也会拆分视图
  • 确定哪些视图函数是相似的并使它们通用
于 2009-03-30T09:27:24.633 回答
2

我会将具有相似目的或功能的视图分离到一个文件中,并将其包含在 views.py 中。我这样做只是为了可读性和维护。例如,特定对象或对象组的 CRUD 视图。

通过将这些视图直接导入到主views.py 文件中,它允许不熟悉您的约定的人找到什么在哪里。

views/object_view.py
于 2009-03-30T08:20:32.143 回答
1

在一个理想的世界里,你不应该这样做。相反,请尝试将您的代码重构为不同的 django 应用程序,以满足您项目所需的每个子目的。这样,您可以比仅拆分 views.py 文件更好地对项目进行分区。

有关如何将项目拆分为不同应用程序的提示,我建议阅读 James Bennett 的Practical Django Projects,这是我现在正在重新阅读的内容 :)

于 2009-03-30T08:41:04.230 回答