Django
Tutorial Django: Instalación y configuración django con venv
Django: Aprende a configurar un entorno venv y ajustar settings.py para optimizar tu proyecto.
Aprende Django GRATIS y certifícateCreación de un entorno venv con Django y dependencias necesarias
El uso de un entorno virtual es esencial para gestionar las dependencias de un proyecto Django sin interferir con otras instalaciones de Python. Para crear un entorno virtual, ejecuta:
python -m venv .venv
Este comando crea un directorio llamado .venv
que contiene el entorno virtual.
Para activar el entorno en según el sistema operativo, utiliza un de los siguientes comandos:
# Símbolo del sistema de Windows
.venv\Scripts\activate.bat
# PowerShell de Windows
.venv\Scripts\Activate.ps1
# macOS y Linux
source .venv/bin/activate
Una vez activado, el nombre del entorno aparecerá en el prompt, en este caso (.venv)
, indicando que estás trabajando dentro de él.
Con el entorno virtual activo, instala Django utilizando pip
:
pip install django
Es buena práctica mantener un registro de las dependencias en un archivo requirements.txt
. Para generarlo, ejecuta:
pip freeze > requirements.txt
Este archivo facilita la reproducibilidad del entorno, permitiendo a otros desarrolladores instalar las mismas versiones de los paquetes con:
pip install -r requirements.txt
Mantener un entorno virtual limpio y bien configurado es fundamental para el desarrollo eficiente de aplicaciones Django. De esta manera, se evitan conflictos y se garantiza que el proyecto sea portable y fácil de mantener.
Archivo de configuración settings.py
El archivo settings.py
es el corazón de la configuración de un proyecto Django. Contiene todas las opciones de configuración necesarias para adaptar el comportamiento de la aplicación a las necesidades específicas del proyecto. Este archivo se genera automáticamente al crear un nuevo proyecto y se ubica en el directorio raíz del mismo.
El settings.py
se estructura en bloques que agrupan configuraciones relacionadas. A continuación, se detallan las secciones más relevantes que deben ajustarse al iniciar un proyecto.
Clave secreta y modo debug
La variable SECRET_KEY
es una cadena única y segura que Django utiliza para diversas operaciones criptográficas. Es fundamental mantener esta clave en secreto en entornos de producción para garantizar la seguridad de la aplicación.
SECRET_KEY = 'tu-clave-secreta-segura'
La opción DEBUG
activa el modo de depuración cuando se establece en True
, mostrando mensajes de error detallados. En entornos de producción, debe configurarse a False
para evitar exponer información sensible.
DEBUG = True
Hosts permitidos
La lista ALLOWED_HOSTS
define los nombres de dominio o direcciones IP que pueden servir el proyecto. Esto es esencial para prevenir accesos no autorizados a la aplicación.
ALLOWED_HOSTS = ['localhost', '127.0.0.1', 'tudominio.com']
Aplicaciones instaladas
La configuración INSTALLED_APPS
es una lista de las aplicaciones que Django cargará al iniciar el proyecto. Incluye tanto las aplicaciones predeterminadas como las creadas por el desarrollador.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# Aplicaciones personalizadas
'mi_app',
]
Middleware
El MIDDLEWARE
es una secuencia de capas que procesan las solicitudes y respuestas. Cada middleware realiza una función específica, como la gestión de sesiones o la protección contra ataques.
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
Configuración de plantillas
La sección TEMPLATES
especifica cómo Django cargará y renderizará las plantillas HTML. Aquí se definen los motores de plantillas, los directorios donde se ubican y los procesadores de contexto utilizados.
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / 'templates'], # Directorio de plantillas
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
Configuración de la base de datos
Aunque la configuración detallada de la base de datos se trata en otra sección, en DATABASES
se define el motor de base de datos y los parámetros básicos de conexión.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
Internacionalización y localización
Las variables LANGUAGE_CODE
y TIME_ZONE
establecen el idioma y la zona horaria predeterminados de la aplicación. Esto es crucial para manejar fechas, horas y traducciones correctamente.
LANGUAGE_CODE = 'es-es' # Español de España
TIME_ZONE = 'Europe/Madrid' # Zona horaria
Archivos estáticos y medios
Las configuraciones STATIC_URL
define la URL a través de las cuales se accede a los archivos estáticos. Es necesario ajustar estas rutas para servir correctamente CSS, JavaScript e Imágenes
STATIC_URL = 'static/'
Validadores de contraseñas
La sección AUTH_PASSWORD_VALIDATORS
especifica los validadores utilizados para asegurar que las contraseñas de los usuarios cumplan con criterios de seguridad.
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
# Otros validadores...
]
Configuraciones personalizadas
El archivo settings.py
es flexible y permite agregar configuraciones personalizadas necesarias para el proyecto. Por ejemplo, parámetros para el envío de correos electrónicos, integración con servicios externos o variables de entorno específicas.
Es importante mantener el orden y la claridad en este archivo, documentando las configuraciones personalizadas y agrupándolas de manera lógica. Esto facilita la mantenibilidad y colaboración en el desarrollo del proyecto.
Ejecutar proyecto Django
Una vez configurado el archivo settings.py
y aseguradas las dependencias en el entorno virtual, es momento de ejecutar el proyecto Django para iniciar el servidor de desarrollo y verificar que todo funciona correctamente.
Para iniciar el servidor, dirígete al directorio raíz del proyecto donde se encuentra el archivo manage.py
. Este archivo es la interfaz de línea de comandos de Django que permite realizar diversas operaciones sobre el proyecto.
Ejecuta el siguiente comando en la terminal:
python manage.py runserver
Al ejecutar este comando, Django iniciará el servidor de desarrollo en la dirección http://127.0.0.1:8000/
por defecto. La consola mostrará un mensaje confirmando que el servidor está activo y escuchando en ese puerto:
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Abre un navegador web y navega a http://127.0.0.1:8000/
. Deberías visualizar la página de bienvenida de Django, indicando que el proyecto se ha ejecutado correctamente.
Si deseas cambiar el puerto o la dirección IP en la que el servidor escucha, puedes especificarlos al ejecutar el comando runserver
. Por ejemplo, para ejecutar el servidor en el puerto 8080, utiliza:
python manage.py runserver 8080
Para escuchar en todas las interfaces de red y permitir accesos remotos, ejecuta:
python manage.py runserver 0.0.0.0:8000
Es importante tener en cuenta que el servidor de desarrollo de Django es apto solo para entornos de desarrollo y no debe utilizarse en producción. Este servidor es de un solo hilo y no está optimizado para manejar grandes cantidades de tráfico.
Antes de ejecutar el proyecto por primera vez, es recomendable aplicar las migraciones pendientes para configurar la base de datos. Ejecuta:
python manage.py migrate
Este comando aplicará todas las migraciones necesarias definidas en las aplicaciones instaladas en INSTALLED_APPS
. La migración inicial es esencial para que las tablas de la base de datos se creen correctamente.
Si has realizado cambios en los modelos o añadido nuevas aplicaciones, debes generar las migraciones correspondientes con:
python manage.py makemigrations
Luego, aplica las migraciones con migrate
como se indicó anteriormente.
Además, para acceder al sitio de administración de Django, es necesario crear un superusuario. Ejecuta:
python manage.py createsuperuser
Ingresa el nombre de usuario, correo electrónico y contraseña cuando se te solicite. Una vez creado, puedes acceder al panel de administración en http://127.0.0.1:8000/admin/
utilizando las credenciales del superusuario.
Recuerda mantener el entorno virtual activado mientras trabajas en el proyecto para asegurarte de que Django y las dependencias se carguen correctamente. Si en algún momento necesitas detener el servidor, simplemente presiona Control-C en la terminal donde está ejecutándose.
Todas las lecciones de Django
Accede a todas las lecciones de Django y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Introducción A Django
Introducción Y Entorno
Instalación Y Configuración Django Con Venv
Introducción Y Entorno
Arquitectura De Un Proyecto Django
Introducción Y Entorno
Base De Datos Mysql En Django
Modelos Y Base De Datos
Creación De Modelos
Modelos Y Base De Datos
Asociaciones De Modelos
Modelos Y Base De Datos
Migraciones
Modelos Y Base De Datos
Operaciones Crud Y Consultas
Modelos Y Base De Datos
Enrutamiento Básico
Vistas Y Plantillas
Plantillas Con Django Template Language
Vistas Y Plantillas
Vistas Basadas En Funciones
Vistas Y Plantillas
Vistas Basadas En Clases
Vistas Y Plantillas
Middlewares
Vistas Y Plantillas
Form Vs Modelform
Formularios
Procesamiento De Formularios
Formularios
Subida De Archivos
Formularios
En esta lección
Objetivos de aprendizaje de esta lección
- Comprender la creación y activación de entornos virtuales.
- Instalar Django y otras dependencias con pip.
- Configurar y entender el archivo
settings.py
. - Ejecutar un proyecto Django en un servidor de desarrollo local.