小编典典

将views.py拆分为多个文件

python

我的views.py体积太大了,很难找到正确的视图。

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

我可以这样models.py吗?


阅读 206

收藏
2020-12-20

共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 view1的Python会寻找在厂景

  1. views.py,这就是第一种(原始)情况

  2. views/__init__.py,这是第二种情况。在这里,__init__.py由于能够导入view1方法,因此能够提供它。

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

如果每个新视图文件中都有许多方法,则可能会发现使导入处于views/__init__.py使用状态很有用*,如下所示:

from viewsa import *
from viewsb import *

我实际上不了解速度问题(但我怀疑是否有任何问题)。

对于模型,可能会有些困难。

2020-12-20