В 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
Объяснение quick будет следующим: при написании from views import view1
Python будет искать view1 в
views.py
, что происходит в первом (оригинальном) случае
views/__init__.py
, что и происходит во втором случае. Здесь __init__.py
может предоставить метод view1, потому что он его импортирует.
При таком решении вам может не понадобиться изменять import
или urlpattern
s аргументы в urls.py
Если у вас есть много методов в каждом новом файле представления, может оказаться полезным, чтобы при импорте в views/__init__.py
использовался *
, например:
from viewsa import *
from viewsb import *
Я действительно не знаю о проблемах со скоростью (но я сомневаюсь, что они есть).
Для моделей это может быть немного сложно.