Introducción
Django es un framework web de alto nivel que promueve el desarrollo rápido y limpio de aplicaciones web con Python. Con una arquitectura robusta y herramientas integradas, Django se ha convertido en una opción preferida para desarrolladores que buscan crear sitios web escalables, seguros y mantenibles. En este artículo, exploraremos paso a paso cómo crear un sitio web completo utilizando Django y Python, desde la configuración inicial hasta la implementación de funcionalidades operativas clave.

¿Por Qué Django?
Antes de sumergirnos en los detalles técnicos, vale la pena mencionar algunas razones por las que Django es una excelente opción para desarrollar sitios web:
- Desarrollo Rápido: Django incluye herramientas y características que permiten construir aplicaciones rápidamente.
- Seguro: Protege automáticamente contra ataques comunes como SQL injection, cross-site scripting y clickjacking.
- Escalable: Django es altamente escalable, lo que lo hace ideal para proyectos de todo tamaño.
- Comunidad Activa: Cuenta con una gran comunidad y una extensa documentación, facilitando el aprendizaje y resolución de problemas.

Prerrequisitos
Antes de comenzar, asegúrate de tener instalado Python y Django en tu entorno de desarrollo. Aquí te mostramos cómo instalar ambos:
Instalación de Python
Django requiere Python. Para instalarlo:
En sistemas Debian/Ubuntu:
sudo apt update
sudo apt install python3 python3-pip
En Fedora:
sudo dnf install python3 python3-pip
Instalación de Django
Una vez que tengas Python, puedes instalar Django usando pip
:
pip install django
1. Configuración del Proyecto Django
Una vez instalado Django, el primer paso es crear un proyecto. El proyecto es el contenedor principal que agrupa las aplicaciones y configuraciones necesarias para el sitio web.
Crear un Proyecto
Usamos el comando django-admin
para crear el proyecto inicial:
django-admin startproject nombre_proyecto
cd nombre_proyecto
Esto generará una estructura de archivos similar a la siguiente:
nombre_proyecto/
manage.py
nombre_proyecto/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
- manage.py: Herramienta de línea de comandos para interactuar con el proyecto.
- settings.py: Archivo de configuración del proyecto.
- urls.py: Gestiona las rutas del sitio.
- wsgi.py/asgi.py: Puntos de entrada del servidor web.
2. Configuración Inicial
Configurar la Base de Datos
Django usa SQLite como base de datos predeterminada, lo cual es ideal para pequeños proyectos. Sin embargo, puedes cambiarla a PostgreSQL, MySQL o cualquier otro sistema de bases de datos. Para este artículo, utilizaremos SQLite para simplificar el proceso.
En el archivo settings.py
, puedes configurar los detalles de la base de datos:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / "db.sqlite3",
}
}
Migrar la Base de Datos
Django utiliza un sistema de migraciones para gestionar los cambios en la base de datos. Para aplicar las migraciones iniciales:
python manage.py migrate
Ejecutar el Servidor de Desarrollo
Para comprobar que todo está funcionando correctamente, puedes ejecutar el servidor de desarrollo con:
python manage.py runserver
Al abrir el navegador y acceder a http://127.0.0.1:8000/
, deberías ver la página de bienvenida de Django.
3. Crear una Aplicación en Django
Un sitio web en Django se organiza en aplicaciones. Cada aplicación es una funcionalidad autónoma que puede ser reutilizada en otros proyectos.
Crear una Aplicación
Para crear una aplicación, usamos el comando startapp
:
python manage.py startapp nombre_app
Esto creará una nueva carpeta dentro del proyecto con los siguientes archivos:
nombre_app/
migrations/
__init__.py
admin.py
apps.py
models.py
views.py
tests.py
- models.py: Define los modelos de datos.
- views.py: Contiene la lógica de las vistas.
- admin.py: Configura el panel de administración de Django.
Registrar la Aplicación
Para que Django reconozca la nueva aplicación, debes añadirla en INSTALLED_APPS
dentro de settings.py
:
INSTALLED_APPS = [
# Otras aplicaciones
'nombre_app',
]
4. Crear el Modelo de Datos
Los modelos en Django definen la estructura de los datos que tu sitio web manejará. Por ejemplo, si estás construyendo un blog, un modelo de Post podría verse así:
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
published_date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
Después de definir un modelo, debes crear y aplicar las migraciones para actualizar la base de datos:
python manage.py makemigrations
python manage.py migrate
5. Crear Vistas y Rutas
Las vistas en Django determinan qué se mostrará al usuario cuando accedan a una URL específica. Una vista básica puede verse así:
from django.shortcuts import render
from .models import Post
def post_list(request):
posts = Post.objects.all()
return render(request, 'post_list.html', {'posts': posts})
A continuación, define una ruta en urls.py
para que esta vista esté disponible:
from django.urls import path
from . import views
urlpatterns = [
path('', views.post_list, name='post_list'),
]
6. Crear Plantillas HTML
Django usa un motor de plantillas para renderizar HTML dinámico. En la carpeta de tu aplicación, crea una carpeta llamada templates
, y dentro de ella un archivo post_list.html
:
<!DOCTYPE html>
<html>
<head>
<title>Blog</title>
</head>
<body>
<h1>Lista de Publicaciones</h1>
<ul>
{% for post in posts %}
<li>{{ post.title }} - {{ post.published_date }}</li>
{% endfor %}
</ul>
</body>
</html>
7. Panel de Administración
Django incluye un poderoso panel de administración que te permite gestionar los datos del sitio web. Para utilizarlo, debes registrar los modelos en admin.py
:
from django.contrib import admin
from .models import Post
admin.site.register(Post)
Luego, puedes acceder al panel en http://127.0.0.1:8000/admin/
. No olvides crear un usuario administrador con el siguiente comando:
python manage.py createsuperuser
8. Funciones Básicas Operativas
Autenticación de Usuarios
Django incluye un sistema de autenticación listo para usar. Puedes habilitarlo agregando vistas de inicio y cierre de sesión. En urls.py
:
from django.contrib.auth import views as auth_views
urlpatterns = [
path('login/', auth_views.LoginView.as_view(), name='login'),
path('logout/', auth_views.LogoutView.as_view(), name='logout'),
]
Formularios
Los formularios en Django son esenciales para interactuar con el usuario. Puedes crear formularios tanto manualmente como usando el sistema de formularios de Django. Ejemplo de un formulario básico de creación de un post:
from django import forms
from .models import Post
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ['title', 'content'
Mensajes de Notificación
Django también ofrece un sistema de mensajes para mostrar notificaciones temporales a los usuarios:
from django.contrib import messages
def post_create(request):
if request.method == "POST":
form = PostForm(request.POST)
if form.is_valid():
form.save()
messages.success(request, 'Post creado con éxito')

Django y Python proporcionan una plataforma flexible y potente para el desarrollo de sitios web. Con su estructura bien organizada, características integradas y la facilidad de uso de Python, puedes crear aplicaciones web que sean robustas, seguras y escalables. Esta guía ha cubierto los aspectos esenciales para configurar un sitio web funcional con Django, pero hay muchos otros temas avanzados, como la optimización de rendimiento, el manejo de archivos estáticos y el despliegue en servidores de producción, que puedes explorar a medida que avances en tu proyecto.
Pingback: Lenguajes que los desarrolladores de apps usan más | GDL Web