Introducción

Django es un framework web de alto nivel para Python que permite el desarrollo rápido y limpio de aplicaciones web. En esta lección, aprenderás a construir una aplicación web básica utilizando Django. Cubriremos la configuración del proyecto, la creación de modelos, vistas y plantillas, y la implementación de funcionalidades básicas.

Contenido

Configuración del Proyecto Django

Instalación de Django

Primero, asegúrate de tener Django instalado. Puedes instalarlo usando pip:

pip install django

Creación del Proyecto

Crea un nuevo proyecto Django utilizando el comando django-admin startproject:

django-admin startproject myproject

Esto creará una estructura de directorios similar a la siguiente:

myproject/
    manage.py
    myproject/
        __init__.py
        settings.py
        urls.py
        wsgi.py

Creación de una Aplicación

Dentro de tu proyecto, crea una nueva aplicación con el comando python manage.py startapp:

cd myproject
python manage.py startapp myapp

Esto añadirá una nueva carpeta myapp con la siguiente estructura:

myapp/
    __init__.py
    admin.py
    apps.py
    models.py
    tests.py
    views.py

Configuración de la Aplicación

Añade tu aplicación a la lista de INSTALLED_APPS en myproject/settings.py:

INSTALLED_APPS = [
    ...
    'myapp',
]

Creación de Modelos

Los modelos en Django representan las estructuras de datos de tu aplicación. Vamos a crear un modelo simple para una aplicación de blog.

Definición del Modelo

Edita myapp/models.py para definir un modelo Post:

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

Migraciones

Después de definir el modelo, crea y aplica las migraciones para actualizar la base de datos:

python manage.py makemigrations
python manage.py migrate

Definición de Vistas

Las vistas en Django manejan la lógica de la aplicación y devuelven respuestas a las solicitudes del usuario.

Vista de Lista de Posts

Edita myapp/views.py para añadir una vista que muestre una lista de posts:

from django.shortcuts import render
from .models import Post

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

Uso de Plantillas

Las plantillas en Django se utilizan para generar HTML dinámico.

Creación de Plantillas

Crea una carpeta templates dentro de myapp y añade un archivo post_list.html:

myapp/
    templates/
        myapp/
            post_list.html

Plantilla post_list.html

Edita post_list.html para mostrar la lista de posts:

<!DOCTYPE html>
<html>
<head>
    <title>Blog</title>
</head>
<body>
    <h1>Blog Posts</h1>
    <ul>
        {% for post in posts %}
            <li>{{ post.title }} - {{ post.created_at }}</li>
        {% endfor %}
    </ul>
</body>
</html>

Configuración de URLs

Configura las URLs para que apunten a la vista que acabamos de crear.

URLs de la Aplicación

Edita myapp/urls.py (crea el archivo si no existe):

from django.urls import path
from . import views

urlpatterns = [
    path('', views.post_list, name='post_list'),
]

URLs del Proyecto

Incluye las URLs de la aplicación en myproject/urls.py:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('myapp.urls')),
]

Ejercicio Práctico

Ejercicio

  1. Añade un campo author al modelo Post para almacenar el nombre del autor.
  2. Modifica la vista y la plantilla para mostrar el nombre del autor junto con el título y la fecha de creación del post.

Solución

Modificación del Modelo

Edita myapp/models.py:

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    author = models.CharField(max_length=50)
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

Migraciones

python manage.py makemigrations
python manage.py migrate

Modificación de la Plantilla

Edita myapp/templates/myapp/post_list.html:

<!DOCTYPE html>
<html>
<head>
    <title>Blog</title>
</head>
<body>
    <h1>Blog Posts</h1>
    <ul>
        {% for post in posts %}
            <li>{{ post.title }} by {{ post.author }} - {{ post.created_at }}</li>
        {% endfor %}
    </ul>
</body>
</html>

Conclusión

En esta lección, has aprendido a configurar un proyecto Django, crear modelos, definir vistas, utilizar plantillas y configurar URLs. Estos son los fundamentos para construir aplicaciones web con Django. En el siguiente módulo, profundizaremos en temas más avanzados y funcionalidades adicionales de Django.

Curso de Programación en Python

Módulo 1: Introducción a Python

Módulo 2: Estructuras de Control

Módulo 3: Funciones y Módulos

Módulo 4: Estructuras de Datos

Módulo 5: Programación Orientada a Objetos

Módulo 6: Manejo de Archivos

Módulo 7: Manejo de Errores y Excepciones

Módulo 8: Temas Avanzados

Módulo 9: Pruebas y Depuración

Módulo 10: Desarrollo Web con Python

Módulo 11: Ciencia de Datos con Python

Módulo 12: Proyecto Final

© Copyright 2024. Todos los derechos reservados