Django 5.0: Настройка локальных сред разработки и производства?
Этот вопрос, в разных формах, задавался несколько раз. Однако большинству ответов на эту тему десять и более лет. Книги Two Scoops, которые у меня есть, предназначены для Django 3.x. Я думаю, что было бы полезно, возможно, иметь обновленные ответы, относящиеся к Django 5.0 и вариантам хостинга, доступным сегодня.
Вот одна из многих старых дискуссий, которые я просмотрел:
Django: Как управлять настройками разработки и производства?
Меня особенно интересует следующий сценарий:
- Локальная разработка под Windows с помощью PyCharm
- Использование PostgreSQL с самого начала (а не SQLite)
- Развертывание на Heroku, Render или PythonAnywhere
У меня есть свои предпочтения, когда речь заходит о таких вещах, как структура каталогов для локального окружения. Стандартная схема для созданного на Django приложения с именем "mypicturesite" такова:
mypicturesite/
code/
mypicturesite/
__init__.py
settings.py
urls.py
wsgi.py
<directories for other apps in the site>
manage.py
db.sqlite3
venv/
<various work directories>/
В итоге вы получаете пути, которые выглядят следующим образом:
z:/mypicturesite/code/mypicturesite
Мой подход выглядит следующим образом:
mypicturesite/
code/ # The entire codebase, including virtual environment
site/ # This now makes sense; this contains the site code
__config/ # These are the site configuration scripts
__init__.py
settings.py
urls.py
wsgi.py
<directories for other apps in the site>
manage.py
db.sqlite3
venv/
<various work directories>/
Что дает:
z:/mypicturesite/code/site
В прошлом я очень громко заявлял о недостаточной практичности (со многих точек зрения) знаменитой 5-минутной установки Django. Именно поэтому существуют десятки, если не сотни, многостраничных статей и видео, объясняющих, как развернуть Django, и даже несколько очень забавных мемов.
Я не прикасался к Django с версии 3.x. Именно поэтому я размещаю этот вопрос. Какова рекомендуемая установка на сегодняшний день?
Вот как я это сделал,
- Создайте каталог settings в вашем основном приложении, добавьте _ init_.py файл .
- Переместите ваш старый settings.py в /settings/base.py, сохраните там базовую конфигурацию, такие вещи, как INSTALLED_APPS, MIDDLEWARE, TEMPLATES, затем создайте development. py, heroku.py, docker_local.py, чтобы определить такие настройки, как DATABASES, STATIC и MEDIA, и т.д. Импортируйте .base и измените настройки, если необходимо .
MIDDLEWARE.append('whitenoise.middleware.WhiteNoiseMiddleware')
INSTALLED_APPS.append('debug_toolbar')
- Ваш init.py будет выглядеть просто:
# from .development import *
from .docker_local import *
# from .production import *
# from .heroku import *