在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
快速解释是:当你从视图中编写import view1时,Python会查找view1
> views.py,这是第一个(原始)案例中发生的情况
> views / __ init__.py,这是第二种情况.这里,__ init__.py能够提供view1方法,因为它导入了它.
使用这种解决方案,您可能无需在urls.py中更改import或urlpatterns参数
如果每个新视图文件中有许多方法,您可能会发现在views / __ init__.py中使用*进行导入很有用,如下所示:
from viewsa import *
from viewsb import *
我实际上不知道速度问题(但我怀疑有没有).
对于模型,它可能有点困难.