Django

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ícate

Creació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.

Para seguir leyendo hazte Plus

¿Ya eres Plus? Accede a la app

20 % DE DESCUENTO

Plan mensual

19.00 /mes

15.20 € /mes

Precio normal mensual: 19 €
58 % DE DESCUENTO

Plan anual

10.00 /mes

8.00 € /mes

Ahorras 132 € al año
Precio normal anual: 120 €
Aprende Django GRATIS online

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.

Accede GRATIS a Django y certifícate

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.