Necesitamos tu apoyo para compartir nuestras reseñas en referencia a las ciencias informáticas.
Solución:
.bashrc funcionará para el desarrollo local, pero no para un entorno de producción. Pasé bastante tiempo buscando la respuesta a esto y esto es lo que funcionó para mí:
1) Cree un archivo en algún lugar de su servidor titulado settings.ini. Hice esto en /etc/project/settings.ini
2) Agregue sus datos de configuración a ese archivo usando el siguiente formato donde el key podría ser una variable ambiental y el valor es un string. Tenga en cuenta que no necesita encerrar el valor entre comillas.
[section]
secret_key_a=somestringa
secret_key_b=somestringb
3) Acceda a estas variables usando python configparser
Biblioteca. El siguiente código podría estar en el archivo de configuración de su proyecto django.
from configparser import RawConfigParser
config = RawConfigParser()
config.read('/etc/project/settings.ini')
DJANGO_SECRET = config.get('section', 'secret_key_a')
Fuente: https://code.djangoproject.com/wiki/SplitSettings (sección de estilo ini)
crea un archivo llamado .bashrc en tu servidor
export('the_name_in_bashrc', some_value)
entonces en el settings.py
import os
some_variable = os.environ.get('the_name_in_bashrc')
La solución más simple es, como ya se mencionó, usar os.environ.get y luego configurar las variables de entorno de su servidor de alguna manera (almacenes de configuración, archivos bash, etc.)
Otra forma un poco más sofisticada es usar python-decouple y archivos .env. Aquí hay un procedimiento rápido:
1) Instale python-decouple (preferiblemente en un venv si no usa Docker):
pip install python-decouple
2) Cree un archivo .env en la raíz de su proyecto Django, agregue un key me gusta;
SECRET_KEY=SomeSecretKeyHere
3) En su configuración.py, o cualquier otro archivo donde desee utilizar los valores de configuración:
from decouple import config
...
SECRET_KEY = config('SECRET_KEY')
4) Como probablemente no quiera que estos secretos terminen en su sistema de control de versiones, agregue el archivo a su .gitignore. Para facilitar la configuración de un nuevo proyecto, puede tener un .env_default registrado en el VCS que contenga valores predeterminados/ficticios que no se usan en producción.