Fundamentos de Django

1

¿Qué es Django?

2

¿Cómo instalar Django?

3

Entendiendo la arquitectura de Django

4

Qué es el patrón MVT (Model, View y Template)

La M en el Patrón: Modelo

5

Introducción a Modelos y Bases de Datos

Manejo Avanzado de Modelos y Bases de Datos

6

Gestión de Modelos y Bases de Datos en Django con SQLite

7

Inserción de Datos con Django

8

Actualización y Eliminación de Datos en Django

Relaciones y Asociaciones entre Modelos

9

Creación y Gestión de Relaciones entre Modelos en Django

10

Relaciones Muchos a Muchos (N:N) en Django

11

Relaciones Uno a Uno (1:1) en Django

12

Queries y Filtros en Django: Optimización y Estrategias Avanzadas

Configuración de URLs y Vistas Avanzadas

13

Gestión de URLs en Django: Configuración, Rutas y Mejores Prácticas

14

Vistas Basadas en Clases en Django

La T en el Patrón: Plantillas o Templates

15

Personalización de Interfaz con Plantillas en Django

Desarrollo de Aplicaciones en Django

16

Configuración del Proyectos en Django

17

Creación del Modelo para la Aplicación 'Products' en Django

18

Cómo Crear Migraciones de Datos en Django

19

Creación de la Aplicación 'Products' con Formularios en Django

20

Integracion de TailwindCSS en Django

21

Django Admin

22

Manejo de Sesiones en Django

23

Manejo de Órdenes en CoffeShop

24

Manejo de Pedidos en CoffeShop

25

Mixings en vistas basadas en clases

26

Agregar productos a la orden

Django Rest Framework

27

Django REST Framework

Despliegue de aplicaciones Django

28

Configurar PostgreSQL en AWS con Django

29

Variables de entorno en Django

30

¿Cómo usar Unit Testing en Django?

31

Debugging en Django

32

Desplegar aplicaciones de Django en AWS

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

14 Días
7 Hrs
7 Min
0 Seg
Curso de Django

Curso de Django

Luis Martínez

Luis Martínez

Variables de entorno en Django

29/32
Recursos

Aprender a manejar información sensible es crucial para la seguridad de cualquier proyecto. Jango facilita este proceso mediante su librería Django Environment, la cual permite gestionar credenciales fuera del archivo de configuración principal.

¿Cómo instalar Django Environment?

Para comenzar, instala Django Environment desde la terminal usando el comando:

pip install django-environ

Luego, ve a tu archivo settings.py y añade la importación de la librería al principio del archivo:

import environ

¿Cómo configurar las variables de entorno?

Primero, crea una nueva instancia de la librería y define las variables en el archivo settings.py:

env = environ.Env()

Luego, mueve tus credenciales sensibles a un archivo .env en la raíz del proyecto, asegurándote de no subir este archivo al repositorio:

DATABASE_PASSWORD=my_secure_password

En settings.py, reemplaza las credenciales directas con las variables de entorno:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': env('DATABASE_NAME'),
        'USER': env('DATABASE_USER'),
        'PASSWORD': env('DATABASE_PASSWORD'),
        'HOST': env('DATABASE_HOST'),
        'PORT': env('DATABASE_PORT'),
    }
}

¿Cómo cargar las variables de entorno?

Para que Django reconozca el archivo .env, debes cargarlo en tu configuración. Agrega la siguiente línea en la parte superior de settings.py:

environ.Env.read_env(os.path.join(BASE_DIR, '.env'))

Esto permitirá que las variables definidas en .env sean accesibles desde el entorno de Django.

¿Qué hacer si la variable no se carga?

Si las variables no se cargan automáticamente, puedes exportarlas manualmente en tu entorno antes de ejecutar el servidor de Django:

export DATABASE_PASSWORD=my_secure_password

¿Cómo simplificar la configuración de la base de datos?

Jango Environment ofrece métodos útiles como db_url que simplifican aún más la configuración:

DATABASES = {
    'default': env.db(),
}

Define todas las credenciales en una única variable en el archivo .env:

DATABASE_URL=postgres://user:password@host:port/dbname

Este método reduce el número de configuraciones manuales, facilitando la administración de variables.

¿Qué ventajas ofrece Django Environment?

Usar Django Environment para gestionar credenciales ofrece múltiples beneficios:

  • Seguridad mejorada: Mantén credenciales fuera del código fuente.
  • Facilidad de uso: Simplifica la configuración de la base de datos.
  • Colaboración segura: Permite compartir código sin exponer información sensible.

Aportes 5

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

El error indica que Django está intentando acceder a una variable de entorno llamada `DJANGO\_DB\_PASSWORD` en tu archivo `settings.py`, pero esa variable no está configurada en el entorno. Django, a menudo, utiliza la biblioteca `django-environ` para cargar variables de entorno que se almacenan en un archivo `.env`. Este archivo puede contener configuraciones sensibles como las credenciales de la base de datos. Aquí te muestro cómo puedes solucionar este problema: \### 1. \*\*Verificar si tienes un archivo `.env`\*\* Asegúrate de tener un archivo `.env` en el directorio raíz de tu proyecto, donde defines variables como `DJANGO\_DB\_PASSWORD`. Un archivo `.env` típico puede lucir algo así: ```bash DJANGO\_DB\_NAME=nombre\_base\_datos DJANGO\_DB\_USER=tu\_usuario DJANGO\_DB\_PASSWORD=tu\_contraseña DJANGO\_DB\_HOST=localhost DJANGO\_DB\_PORT=5432 ``` \### 2. \*\*Crear o modificar el archivo `.env`\*\* Si no tienes un archivo `.env`, crea uno en el mismo directorio donde está el archivo `manage.py`. Luego, añade las credenciales de la base de datos, por ejemplo: ```bash DJANGO\_DB\_NAME=coffee\_shop\_db DJANGO\_DB\_USER=postgres DJANGO\_DB\_PASSWORD=tu\_contraseña DJANGO\_DB\_HOST=localhost DJANGO\_DB\_PORT=5432 ``` \### 3. \*\*Modificar `settings.py` para cargar las variables de entorno\*\* Asegúrate de que en tu archivo `settings.py` estás cargando las variables de entorno correctamente. Deberías tener algo como esto: ```python import environ env = environ.Env() environ.Env.read\_env() # Lee el archivo .env DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': env('DJANGO\_DB\_NAME'), 'USER': env('DJANGO\_DB\_USER'), 'PASSWORD': env('DJANGO\_DB\_PASSWORD'), 'HOST': env('DJANGO\_DB\_HOST'), 'PORT': env('DJANGO\_DB\_PORT'), } } ``` \### 4. \*\*Verifica que la variable de entorno esté configurada\*\* Si no puedes o no quieres usar un archivo `.env`, también puedes configurar las variables de entorno directamente en la terminal o en tu entorno de desarrollo. Por ejemplo, en PowerShell, puedes establecer la variable de esta manera: ```bash $env:DJANGO\_DB\_PASSWORD="tu\_contraseña" ``` O en bash (Linux o macOS): ```bash export DJANGO\_DB\_PASSWORD="tu\_contraseña" ``` Asegúrate de reiniciar el entorno o terminal después de establecer las variables. \### 5. \*\*Reintentar\*\* Después de haber configurado la variable de entorno o el archivo `.env`, vuelve a intentar ejecutar tu aplicación: ```bash python manage.py runserver ``` Si sigues estos pasos, el error debería solucionarse y tu proyecto Django debería conectarse correctamente a la base de datos.
Otra opción es usar `python-dotenv:` ```js import os from pathlib import Path import dj_database_url from dotenv import load_dotenv # Cargar variables de entorno desde el archivo .env load_dotenv() # Obtener la cadena de conexión desde la variable de entorno DATABASE_URL = os.getenv('DATABASE_URL') DATABASES = { 'default': dj_database_url.config(default=DATABASE_URL) } ```
Para los que usan windows (PowerShell) para establecer la variable de entorno, pueden usar el siguiente comando: `$env:DJANGO_DB_PASSWORD="db-password"`
Solución para Windows de: **django.core.exceptions.ImproperlyConfigured: Set the DJANGO\_DB\_URL environment variable** Crear una nueva **variable de entorno:** * Introduce `DJANGO_DB_URL` como el nombre de la variable y el valor será **postgres://USER:PASSWORD@HOST:PORT/NAME** (utilizar sus propios datos.) * Haz clic en "Aceptar" para cerrar las ventanas y guardar los cambios. Por último, reiniciar la laptop. Por otro lado, en windows en vez de usar **export** usar **set.**
Cuando el profe agrega una nueva variable de entorno en el archivo .env observen como la en la parte superior derecha (donde dice zsh) aparece un signo de alerta. Eso siempre pasará cuando modifiquemos ese archivo. Esa alerta sugiere que debemos hacer un reload window, para que los cambios queden guardados. Como lo hizo el profe fue un poco más forzado ya que directamente exportó la variable, vean como el warning no se quita. Mientras que si escriben CTRL + SHIFT + P y escriben en el cuadro de diálogo ">Developer: Reload Window" todo el .env queda cargado y el warning desaparece.