3.5 KiB
3.5 KiB
Подключение PostgreSQL for 1C 18 к проекту Django
Ниже готовый блок для Django под дефолтные значения из вашего .env:
- пользователь:
admin_1c - пароль:
StrongPassword123! - база:
appdb - хост:
127.0.0.1 - порт:
5432
Вариант 1. Быстро вставить прямо в settings.py
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql",
"NAME": "appdb",
"USER": "admin_1c",
"PASSWORD": "StrongPassword123!",
"HOST": "127.0.0.1",
"PORT": "5432",
}
}
Вариант 2. Подтягивать из .env через python-decouple
Установка:
pip install python-decouple
Пример .env проекта Django:
DB_NAME=appdb
DB_USER=admin_1c
DB_PASSWORD=StrongPassword123!
DB_HOST=127.0.0.1
DB_PORT=5432
Пример settings.py:
from decouple import config
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql",
"NAME": config("DB_NAME", default="appdb"),
"USER": config("DB_USER", default="admin_1c"),
"PASSWORD": config("DB_PASSWORD", default="StrongPassword123!"),
"HOST": config("DB_HOST", default="127.0.0.1"),
"PORT": config("DB_PORT", default="5432"),
}
}
Вариант 3. Подтягивать из .env без сторонних библиотек
Если переменные окружения уже экспортируются в systemd / docker / shell, можно так:
import os
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql",
"NAME": os.getenv("DB_NAME", "appdb"),
"USER": os.getenv("DB_USER", "admin_1c"),
"PASSWORD": os.getenv("DB_PASSWORD", "StrongPassword123!"),
"HOST": os.getenv("DB_HOST", "127.0.0.1"),
"PORT": os.getenv("DB_PORT", "5432"),
}
}
Если хотите использовать значения прямо из вашего серверного .env
Обычно лучше не читать серверный .env установщика напрямую из Django, а завести отдельные переменные приложения:
DB_NAME=appdb
DB_USER=admin_1c
DB_PASSWORD=StrongPassword123!
DB_HOST=127.0.0.1
DB_PORT=5432
Это удобнее, чем тянуть в приложение служебные переменные вроде:
REPO_ADD_URLPGPRO_BIN_DIRSERVICE_NAMEINSTALL_MODE
Проверка подключения
После настройки можно проверить так:
python manage.py migrate
python manage.py showmigrations
Если драйвер PostgreSQL еще не установлен:
pip install psycopg[binary]
Либо классический вариант:
pip install psycopg2-binary
Рекомендуемый итоговый блок для Django-проекта
from decouple import config
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql",
"NAME": config("DB_NAME", default="appdb"),
"USER": config("DB_USER", default="admin_1c"),
"PASSWORD": config("DB_PASSWORD", default="StrongPassword123!"),
"HOST": config("DB_HOST", default="127.0.0.1"),
"PORT": config("DB_PORT", default="5432"),
"CONN_MAX_AGE": 60,
"OPTIONS": {},
}
}