Guía para principiantes en Django: Crea tu primer proyecto
Introducción

Django es un framework de desarrollo web en Python que permite construir aplicaciones de manera rápida y segura. Su arquitectura basada en el patrón MVT (Modelo-Vista-Template) facilita la organización del código y su mantenimiento.

En esta guía aprenderás a crear tu primer proyecto en Django paso a paso.

Requisitos previos

Antes de comenzar, asegúrate de tener instalado:

  • Python 3.8 o superior (python --version).
  • pip, el gestor de paquetes de Python (pip --version).
  • Un entorno virtual para aislar dependencias.
Instalación de Django

Para instalar Django, ejecuta:

pip install django

Verifica la instalación:

django-admin --version
Creando un proyecto Django

Crea un nuevo proyecto:

django-admin startproject mi_proyecto

Estructura generada:

mi_proyecto/
│
├── manage.py
└── mi_proyecto/
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    ├── asgi.py
    └── wsgi.py
Ejecutando el servidor de desarrollo

Arranca el servidor:

cd mi_proyecto
python manage.py runserver

Si ves el mensaje de que corre en http://127.0.0.1:8000/, ¡todo OK!

Creando una aplicación

Las apps son módulos independientes dentro del proyecto. Crea blog:

python manage.py startapp blog

Estructura de la app:

blog/
├── __init__.py
├── admin.py
├── apps.py
├── models.py
├── tests.py
└── views.py
Registrando la aplicación

Añade 'blog' a INSTALLED_APPS en settings.py:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
]
Definiendo un modelo

Crea el modelo Post en blog/models.py:

from django.db import models

class Post(models.Model):
    titulo = models.CharField(max_length=200)
    contenido = models.TextField()
    fecha_publicacion = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.titulo
Ejecutando migraciones

Aplica los cambios en la base de datos:

python manage.py makemigrations
python manage.py migrate
Creando un superusuario

Para acceder al admin:

python manage.py createsuperuser

Luego entra en /admin/.

Registrando el modelo en el admin

En blog/admin.py:

from django.contrib import admin
from .models import Post

admin.site.register(Post)
Creando una vista y una URL

En blog/views.py:

from django.shortcuts import render
from .models import Post

def lista_posts(request):
    posts = Post.objects.all()
    return render(request, 'blog/lista_posts.html', {'posts': posts})

En urls.py del proyecto:

from django.urls import path
from blog.views import lista_posts

urlpatterns = [
    path('posts/', lista_posts, name='lista_posts'),
]
Creando una plantilla

Crea blog/templates/blog/lista_posts.html:

<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="UTF-8">
  <title>Lista de Posts</title>
</head>
<body>
  <h1>Lista de Posts</h1>
  <ul>
    {% for post in posts %}
      <li><strong>{{ post.titulo }}</strong> — {{ post.fecha_publicacion }}</li>
    {% endfor %}
  </ul>
</body>
</html>
Ejecutando el servidor y viendo la app

Levanta el servidor de nuevo y visita la ruta de la lista:

python manage.py runserver

http://127.0.0.1:8000/posts/

Con esto has construido tu primer proyecto Django con una app funcional: modelos, vistas, URLs, plantillas y administración.

Desde aquí puedes sumar autenticación, formularios, archivos estáticos y más. ¡Sigue iterando!