一尘不染

将views.py拆分为多个文件

django

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

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

我可以这样models.py吗?


阅读 852

收藏
2020-03-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 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-03-27