分离Django应用程序视图

时间:2009-03-30 07:43:30

标签: django views

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

4 个答案:

答案 0 :(得分:25)

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

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

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

答案 1 :(得分:12)

没有通用的最佳方式。但是对于你的情况,有一个正确的方式

  • 将视图放在视图中的自己的文件导入它们中。这很好,只是看看它是如何工作的
  • 在项目中创建单独的应用以维护一组视图
  • 创建您自己的generic views,其中包含与您的大多数应用相同的观看次数

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

  • 你有多少模型?
  • 他们实际上是关联还是可以分组?
  • 如果可以分组将应用分成两个应用
  • 因此您还拆分视图
  • 确定哪些视图功能相似,并使它们通用

答案 2 :(得分:2)

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

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

views/object_view.py

答案 3 :(得分:1)

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

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