我的 views.py
太大了,很难找到合适的 View 。
如何将其拆分为多个文件然后导入?是否涉及速度损失?
我可以对 models.py
做同样的事情吗?
最佳答案
在 Django 中,一切都是 Python 模块 (*.py)。您可以创建一个包含 __init__.py
的 View 文件夹,您仍然可以导入您的 View ,因为这也实现了一个 Python 模块。但是举个例子会更好。
您的原始 views.py
可能如下所示:
def view1(arg):
pass
def view2(arg):
pass
使用以下文件夹/文件结构,它的工作方式相同:
views/
__init__.py
viewsa.py
viewsb.py
viewsa.py
:
def view1(arg):
pass
viewsb.py
:
def view2(arg):
pass
__init__.py
:
from viewsa import view1
from viewsb import view2
快速的解释是:当你写from views import view1
Python会在
views.py
,这是第一个(原始)案例中发生的情况views/__init__.py
,就是第二种情况。在这里,__init__.py
能够提供 view1 方法,因为它导入了它。
使用这种解决方案,您可能无需更改 urls.py
import
或 urlpattern
的参数
如果您在每个新 View 文件中都有许多方法,您可能会发现在 views/__init__.py
中使用 *
进行导入很有用,如下所示:
from viewsa import *
from viewsb import *
我实际上不知道速度问题(但我怀疑是否存在)。
对于模型来说,这可能有点困难。
关于python - 在几个文件中拆分views.py,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1921771/