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 el siguiente comando:
pip install django
Una vez instalado, verifica la versión con:
django-admin --version
Creando un proyecto Django Para iniciar un nuevo proyecto, usa el comando:
django-admin startproject mi_proyecto
Esto generará una estructura de carpetas como esta:
mi_proyecto/
    manage.py
    mi_proyecto/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py
Ejecutando el servidor de desarrollo Para probar que todo funciona, mueve al directorio del proyecto y ejecuta:
cd mi_proyecto
python manage.py runserver
Si ves un mensaje indicando que el servidor está corriendo en http://127.0.0.1:8000/, todo está funcionando correctamente. Creando una aplicación En Django, las aplicaciones son módulos independientes dentro de un proyecto. Para crear una, usa:
python manage.py startapp blog
Esto creará una nueva carpeta blog con la siguiente estructura:
blog/
    __init__.py
    admin.py
    apps.py
    models.py
    tests.py
    views.py
Registrando la aplicación en Django Para que Django reconozca la aplicación, agrégala en INSTALLED_APPS dentro de 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 En models.py de la aplicación blog, define un modelo para representar una entrada de blog:
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 Para aplicar los cambios en la base de datos, ejecuta:
python manage.py makemigrations
python manage.py migrate
Creando un superusuario Para acceder al panel de administración, crea un superusuario con:
python manage.py createsuperuser
Sigue las instrucciones para definir un nombre de usuario y contraseña. Registrando el modelo en el panel de administración En admin.py dentro de blog, registra el modelo:
from django.contrib import admin
from .models import Post

admin.site.register(Post)
Creando una vista y una URL En views.py de la aplicación blog:
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})
Luego, en urls.py del proyecto, crea una ruta:
from django.urls import path
from blog.views import lista_posts

urlpatterns = [
    path('posts/', lista_posts, name='lista_posts'),
]
Creando una plantilla Dentro de blog/templates/blog/lista_posts.html:
<!DOCTYPE html>
<html>
<head>
    <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 aplicación Corre el servidor nuevamente:
python manage.py runserver
Visita http://127.0.0.1:8000/posts/ en tu navegador para ver la lista de posts. Conclusión Siguiendo estos pasos, has creado tu primer proyecto Django, una aplicación de blog básica con modelos, vistas, URLs y plantillas. Ahora puedes seguir explorando Django agregando autenticación de usuarios, formularios y personalización de la interfaz. ¡Sigue practicando y mejorando tu proyecto!