Café y Código

3. Introducción a Django y Entornos Virtuales (venv) 🌿

1. El Entorno Virtual (venv): Regla #1 en Desarrollo Python

Antes de escribir una sola línea de código en Django, existe un mandamiento fundamental que todo desarrollador backend debe cumplir: jamás instalar paquetes de Python directamente en el sistema global.

💡 ¿Por qué es obligatorio un Entorno Virtual?

  • Aislamiento total: Si un proyecto antiguo requiere Django 4.2 y uno nuevo utiliza Django 5.1, ambos pueden coexistir en la misma máquina sin romperse mutuamente.
  • Limpieza del sistema: Si decides borrar un proyecto, solo tienes que eliminar la carpeta venv del entorno virtual sin dejar residuos en tu sistema operativo.
  • Reproducibilidad con requirements.txt: Permite compartir con tu equipo la lista exacta de librerías y versiones que necesita la aplicación.

1.1 Creación del Entorno Virtual

Python incluye por defecto la herramienta venv. Abrimos nuestra terminal en la carpeta principal de trabajo (C:\proyectos\django) y creamos una carpeta llamada venv:

Terminal CMD / PowerShell
CMD
1# Crear el entorno virtual con el nombre de carpeta "venv"
2PS C:\proyectos\django> python -m venv venv

1.2 Activación y el Indicador Vital: (venv)

Crear el entorno no basta; debes activarlo. Cuando el entorno está correctamente activo, tu terminal sufre una transformación visual imprescindible: aparece el prefijo (venv) al inicio de la línea de comandos.

⚠️ Regla de Oro: El Indicador (venv)

Si NO ves (venv) al comienzo de tu prompt, NO instales Django ni uses pip. El prefijo te garantiza que cualquier librería instalada quedará encapsulada dentro de la carpeta venv/Lib/site-packages.

Comandos de activación según tu sistema operativo:

Activación de (venv) en CMD y PowerShell
CMD
1# ========================================================
2# En Windows (PowerShell):
3# ========================================================
4PS C:\proyectos\django> .\venv\Scripts\activate
5(venv) PS C:\proyectos\django>
6
7# Tip Pro: Si PowerShell te arroja error de "política de ejecución de scripts", ejecuta:
8# Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
9
10# ========================================================
11# En Windows (CMD clásico):
12# ========================================================
13C:\proyectos\django> venv\Scripts\activate.bat
14(venv) C:\proyectos\django>
15
16# ========================================================
17# En Linux / macOS (Bash o Zsh):
18# ========================================================
19usuario@laptop:~/proyectos/django$ source venv/bin/activate
20(venv) usuario@laptop:~/proyectos/django$

Para salir del entorno cuando termines de trabajar, simplemente ejecuta:

Desactivar (venv) en CMD
CMD
1(venv) PS C:\proyectos\django> deactivate
2PS C:\proyectos\django>

2. Instalación de Django y Creación del Proyecto

Con el entorno (venv) activo, instalamos Django mediante pip:

Instalación con pip en (venv)
CMD
1# 1. Actualizar el gestor de paquetes (opcional pero recomendado)
2(venv) PS C:\proyectos\django> python -m pip install --upgrade pip
3
4# 2. Instalar el framework Django
5(venv) PS C:\proyectos\django> pip install django
6
7# 3. Comprobar la versión instalada
8(venv) PS C:\proyectos\django> django-admin --version
95.1.1

2.1 Creación del Proyecto (django-admin startproject biblioteca)

Para iniciar el proyecto utilizamos el comando django-admin startproject NOMBRE_PROYECTO. En nuestro caso, crearemos el proyecto llamado biblioteca:

Creación del Proyecto con (venv)
CMD
1# 1. Crear el proyecto con el nombre "biblioteca"
2(venv) PS C:\proyectos\django> django-admin startproject biblioteca
3
4# 2. Entrar en la carpeta del proyecto recién creado
5(venv) PS C:\proyectos\django> cd biblioteca
6(venv) PS C:\proyectos\django\biblioteca>

2.2 Iniciar el Servidor de Desarrollo

Una vez dentro de la carpeta del proyecto (donde reside manage.py), iniciamos el servidor web ligero de desarrollo:

Servidor de Desarrollo en (venv)
CMD
1(venv) PS C:\proyectos\django\biblioteca> python manage.py runserver
2
3Watching for file changes with StatReloader
4Performing system checks...
5
6System check identified no issues (0 silenced).
7Django version 5.1.1, using settings 'biblioteca.settings'
8Starting development server at http://127.0.0.1:8000/
9Quit the server with CTRL-BREAK.

Si abres tu navegador en http://127.0.0.1:8000/, verás el famoso cohete de Django despegando con el mensaje "The install worked successfully! Congratulations!".

3. Anatomía de la Estructura Generada

Al ejecutar django-admin startproject biblioteca, dentro de nuestra carpeta principal C:\proyectos\django se organiza la siguiente estructura:

estructura_archivos.txt
TEXT
1C:\proyectos\django\
2├── venv/ <-- Carpeta del entorno virtual aislado
3└── biblioteca/ <-- Carpeta raíz del proyecto creada por startproject
4 ├── manage.py <-- Script CLI para ejecutar comandos (runserver, migrate, etc.)
5 └── biblioteca/ <-- Paquete de configuración central del proyecto
6 ├── __init__.py <-- Marca la carpeta como paquete de Python
7 ├── settings.py <-- Configuración global (BD, apps, seguridad, idiomas)
8 ├── urls.py <-- Enrutador raíz principal del proyecto
9 ├── asgi.py <-- Entrada para servidores asíncronos (WebSockets)
10 └── wsgi.py <-- Entrada para servidores web tradicionales (WSGI)

4. Aplicaciones en Django (Apps)

En Django, existe una distinción crucial entre Proyecto y Aplicación:

  • Proyecto: La configuración global de todo el sitio web (base de datos, middleware, URLs raíz). En nuestro ejemplo: biblioteca.
  • Aplicación (App): Un módulo reutilizable con un objetivo concreto. Por ejemplo, el catálogo de libros.

Desde la carpeta donde está manage.py, creamos nuestra aplicación modular:

Crear Aplicación en CMD con (venv)
CMD
1(venv) PS C:\proyectos\django\biblioteca> python manage.py startapp libros

Paso obligatorio: Cada vez que creas una aplicación con startapp, debes registrarla en la lista INSTALLED_APPS del archivo biblioteca/settings.py:

biblioteca/settings.py
PYTHON
1# biblioteca/settings.py
2
3INSTALLED_APPS = [
4 'django.contrib.admin',
5 'django.contrib.auth',
6 'django.contrib.contenttypes',
7 'django.contrib.sessions',
8 'django.contrib.messages',
9 'django.contrib.staticfiles',
10
11 # Aplicaciones del proyecto:
12 'libros',
13]

5. Laboratorio Interactivo: Simulador de Terminal y Código 🧪

¡Es tu turno de ponerte a prueba! Practica todo el flujo real escribiendo comandos en la terminal interactiva inferior. Observa con atención cómo el prompt cambia para mostrar el prefijo (venv) cuando activas el entorno. Luego, pasa al editor para registrar la aplicación en settings.py.

laboratorio-django ~ C:\proyectos\django
SIN ENTORNO (SISTEMA)
MISIÓN

Paso 1: Crear el Entorno Virtual (venv)

Crea un entorno virtual aislado llamado "venv" dentro de C:\proyectos\django.

🖥️ Simulador de Terminal Django (C:\proyectos\django) Escribe los comandos tal como lo harías en tu terminal real para completar la misión.
PS C:\proyectos\django>
Comandos rápidos: help, clear, deactivatePresiona Enter para enviar

Videotutoriales recomendados

1. Introducción a Django - Video 1
2. Introducción a Django - Video 2
3. Introducción a Django - Video 3

Ponte a prueba

Confirma que conoces la estructura inicial de un proyecto Django y el uso del entorno virtual.

Ko-fi
Donaciones
Apoyá cafeycodigo con un café en Ko-fi. Colaboradores: insignia, muro y zona exclusiva.