小编典典

在几个文件中拆分views.py

all

views.py已经变得太大了,很难找到正确的视图。

如何将其拆分为多个文件然后导入?它是否涉及任何速度损失?

我可以这样做models.py吗?


阅读 80

收藏
2022-08-27

共1个答案

小编典典

在 Django 中,一切都是 Python 模块
(*.py)。您可以创建一个带有__init__.py内部的视图文件夹,您仍然可以导入您的视图,因为这也实现了一个 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 view1Python 时,会在

  1. views.py,这是在第一个(原始)案例中发生的情况

  2. views/__init__.py,这是在第二种情况下发生的情况。在这里,__init__.py能够提供 view1 方法,因为它导入了它。

使用这种解决方案,您可能无需更改import或更改urlpattern参数urls.py

views/__init__.py如果您在每个新视图文件中都有许多方法,您可能会发现将导入设置为 in use很有用*,如下所示:

from viewsa import *
from viewsb import *

我实际上不知道速度问题(但我怀疑有任何问题)。

对于模型来说,这可能有点困难。

2022-08-27