¿Qué son las variables de entorno?
Cuando desarrollamos un proyecto vamos a tener parte de código con información sensible, hay variables que no pueden estar visibles para cualquier usuario que accedan a nuestro código, por lo que es interesante configurar por seguridad dichas variables de entorno.
Las variables de entorno son valores dinámicos que pueden afectar el comportamiento de programas y procesos en un sistema operativo. Estas variables almacenan información sobre el entorno de ejecución del sistema, como la configuración del sistema, las preferencias del usuario, la ubicación de archivos y otros detalles relevantes para el funcionamiento de programas y aplicaciones.
Algunas de estas variables de entorno en un proyecto de desarrollo de Django son la clave secreta de la aplicación, los host permitidos, la configuración de nuestro servidor de correo o las credenciales de acceso a la base de datos entre otras.
Utilizar las variables de entorno
Con el fin de dar seguridad a nuestro proyecto y no hacer públicas estas variables podemos utilizar la librería de Python django-environ que nos va a permitir poder configurar nuestras variables de entorno.
Si revisamos la documentación de esta librería observaremos que los requisitos que debemos cumplir son tener una versión de Django superior o igual a 1.11 y una versión de Python 3.5 o superior. Si cumplimos con estos dos requisitos podemos realizar la instalación de la librería, en caso contrario nos quedaría actualizar a dichas versiones o buscar otras opciones para poder utilizar las variables de entorno.
Para realizar la instalación de la librería debemos ejecutar desde la terminal de nuestro entorno virtual del repositorio en el que estamos trabajando:
python -m pip install django-environ
Podemos comprobar las librerías instaladas en el entorno virtual con el comando pip list
También necesitamos crear el archivo .env en nuestro proyecto a la misma altura en que se encuentra el archivo manage.py donde debemos de configurar nuestras variables. Es importante añadir este archivo al gitignore para evitar que se puede subir a nuestro repositorio y no queden los datos expuestos.
Una vez realizada la instalación de la librería debemos crear en el archivo setting.py una instancia de dicha clase , indicarle de donde tiene que coger las variables de entorno y declararlas, tras ello habrá que indicar en el archivo .env los valores que adoptan las diferentes variables
Ejemplo archivo settings.py
import environ
# Initialize environment variables
env = environ.Env()
# Take environment variables from .env file
environ.Env.read_env(os.path.join(BASE_DIR, '.env'))
SECRET_KEY = env('SECRET_KEY')
DEBUG = env('DEBUG')
EMAIL_HOST = env('EMAIL_HOST')
EMAIL_PORT = env('EMAIL_PORT')
EMAIL_HOST_USER = env('EMAIL_HOST_USER')
EMAIL_HOST_PASSWORD = env('EMAIL_HOST_PASSWORD')
EMAIL_HOST = env('EMAIL_HOST')
DB_ENGINE = env('DB_ENGINE')
DB_NAME = env('DB_NAME')
Ejemplo archivo .env
SECRET_KEY=django-insecure-ClavedeNumerosdeTuAplicación
DEBUG=True
EMAIL_HOST=micorreo@example.com
EMAIL_HOST_PASSWORD=miPassword
EMAIL_PORT=587
Con esto ya tenemos nuestras variables de entorno configuradas y por tanto añadido seguridad a nuestro proyecto

Thank you for another wonderful article. Where else could anyone get that type of information in such a perfect way of writing? I have a presentation next week, and I am on the look for such info.
Thank you for the auspicious writeup. It in fact was a amusement account it.
Look advanced to far added agreeable from you!
However, how could we communicate?
You can contact with us here
I have been surfing onlinhe more than 4 hours today,
yet I never found any interesting article like yours.
It’s pretty worth enough for me. In my opinion, if all webmasters and bloggers ade good content
as you did, tthe nnet will be a lot more useful than ever before.
Elizabeth
I for all time emailed this weblog post page tto all my contacts, for the rdason that
if like to read it next my friends will too.
Thank you for sharing the post with your contacts! I’m glad you enjoyed it, and I hope your friends find it useful as well.