Как правильно начинать веб-разработку на python/django?

Насколько я понимаю, для каждого приложения (django/flask) нужно создавать отдельное окружение? Есть ли ситуации, где можно завести одно окружение для нескольких, например с идентичными пакетами, приложений?

При запуске веб-приложения на сервере apache2+mod-wsgi, как он работает и распознаёт виртуальные окружения?
#apache2 virtualhost:
#...
WSGIScriptAlias / var/www/mydomain.com/index.wsgi

#index.wsgi:
#...
activate_env=os.path.expanduser("~/.virtualenvs/myprojectenv/bin/activate_this.py")
execfile(activate_env, dict(__file__=activate_env))

Этих строк в соответствующих файлах достаточно, чтобы всё работало корректно? На что ещё стоит обратить внимание?
  • Вопрос задан
  • 937 просмотров
Решения вопроса 1
@bIbI4k0
Питоню
1. Заводить под каждый проект свой virtualenv считается хорошей практикой. Очевидных минусов здесь нет, в отличие от иного подхода, да и дело-то это простое. ;-) Приложения, конечно, могут использовать идентичные пакеты, но нужно думать на перспективу.
2. Именно эта строка и указывает модулю, какое окружение использовать:
activate_env=os.path.expanduser("~/.virtualenvs/myprojectenv/bin/activate_this.py")
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
suguby
@suguby
программист, python, django, mysql, git, hg, linux
На первый вопрос - все равно потом вылезет, что приложения используют разные пакеты (на одном баг пофиксили, до второго руки не дошли, к примеру) и придется делать отдельные. Поэтому сделайте сразу отдельные.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы