Utilidades
dotenv - uso de variables de entorno en desarrollo/despliegue
$ pip install python-dotenv
# .env
# DB
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=postgres
# app
SECRET_KEY=y6xg%o&^m4ggo5s!%mcdnu@v#neu#1v#2s9d&_q2(wixlxd((#
DATABASE_HOST=db
DATABASE_NAME=postgres
DATABASE_USER=postgres
DATABASE_PASSWORD=postgres
# for debugging and error reporting.
DEBUG=True
# settings.py
import os
from dotenv import load_dotenv
load_dotenv([<path>]) # take environment variables from .env.
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = str(os.getenv('SECRET_KEY'))
# Database
if 'DATABASE_HOST' in os.environ:
DATABASES = {
'default': {
'HOST': os.environ.get('DATABASE_HOST')
# ENGINE read notes below
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': os.environ.get('DATABASE_NAME'),
'USER': os.environ.get('DATABASE_USER'),
'PASSWORD': os.environ.get('DATABASE_PASSWORD'),
}
}
else :
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
# docker-compose.yml
version: '3.1'
services:
db:
image: postgres:13.0-alpine
env_file: .env
volumes:
- ./postgres_data:/var/lib/postgresql/data/
ports:
- 5432:5432
adminer:
image: adminer
ports:
- 8080:8080
Última modificación October 21, 2022: inicio django (f6c0691)