Приложения Django можно сделать переносимыми, придерживаясь определенных практик. Конечно, это не обязательно
Расположение приложения
Соглашение состоит в том, чтобы добавлять приложения в каталог apps / и изменять файл manage.py (и, в конечном итоге, конфигурацию apache), чтобы включить
import sys
from os.path import abspath, dirname, join
PROJECT_ROOT = abspath(dirname(__file__))
sys.path.insert(0, join(PROJECT_ROOT, "apps"))
Ваша структура каталогов будет выглядеть примерно так:
site
site/apps/
site/apps/app1/
site/apps/app2/
Шаблоны
Шаблоны находятся в каталоге шаблонов в приложении. Соглашение не должно заставлять пользователя копировать их в любом другом месте. В конце концов, у пользователя могут быть глобальные шаблоны для переопределения шаблонов в приложении.
Настройки
Сохраните все настройки по умолчанию в локальном файле в каталоге приложения. Настройки будут переопределены глобальными настройками. Файл локальных настроек будет иметь следующую структуру.
from django.conf import settings
def get(key, default):
return getattr(settings, key, default)
SETTING_1 = get('SETTTING_1', 10)
Эти соглашения должны охватывать большинство основных вопросов.