Creación de una aplicación web en Python con Django
Django es un framework web de alto nivel desarrollado en Python que fomenta el desarrollo rápido y un diseño limpio y pragmático. Se encarga de gran parte de las complicaciones del desarrollo web, lo que permite a los desarrolladores centrarse en escribir la aplicación en lugar de reinventar la rueda. Este artículo le guiará en la creación de una aplicación web sencilla con Django.
Introducción a Django
Antes de comenzar a crear una aplicación web con Django, es necesario instalarlo. Puedes instalarlo con pip, el instalador de paquetes de Python:
pip install django
Una vez instalado Django, puedes crear un nuevo proyecto Django ejecutando el siguiente comando en tu terminal o símbolo del sistema:
django-admin startproject myproject
Este comando crea un nuevo directorio llamado myproject
con los archivos necesarios para comenzar. Navegue hasta este directorio:
cd myproject
Creando una aplicación Django
Dentro de tu proyecto Django, puedes crear aplicaciones individuales que se encarguen de funciones específicas. Por ejemplo, puedes tener una aplicación para la autenticación de usuarios, otra para publicaciones de blogs, etc. Para crear una aplicación, ejecuta el siguiente comando:
python manage.py startapp myapp
Esto crea un nuevo directorio llamado myapp
que contiene archivos como models.py
, views.py
y tests.py
, entre otros. Definirás tus modelos, vistas y plantillas dentro de esta aplicación.
Definición de modelos
Los modelos de Django definen la estructura de sus datos y se representan como clases de Python. Los define en el archivo models.py
dentro de su aplicación:
from django.db import models
class BlogPost(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
Una vez que defina sus modelos, deberá crear tablas de base de datos para ellos. Ejecute los siguientes comandos para aplicar las migraciones:
python manage.py makemigrations
python manage.py migrate
Creación de vistas y plantillas
Las vistas de Django manejan la lógica de la aplicación e interactúan con los modelos para representar datos en plantillas. Se puede crear una vista simple en el archivo views.py
:
from django.shortcuts import render
from .models import BlogPost
def home(request):
posts = BlogPost.objects.all()
return render(request, 'home.html', {'posts': posts})
El código anterior obtiene todas las publicaciones del blog de la base de datos y las pasa a una plantilla llamada home.html
. La plantilla home.html
se almacena en un directorio llamado templates
dentro de la aplicación:
<!DOCTYPE html>
<html>
<head>
<title>Blog Home</title>
</head>
<body>
<h1>Blog Posts</h1>
<ul>
{% for post in posts %}
<li>{{ post.title }} - {{ post.created_at }}</li>
{% endfor %}
</ul>
</body>
</html>
Configurar URL
Para conectar vistas a URL, debe definir patrones de URL. Cree un archivo llamado urls.py
en el directorio de su aplicación y agregue el siguiente código:
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='home'),
]
Luego, incluya los patrones de URL de esta aplicación en el archivo principal del proyecto urls.py
:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('myapp.urls')),
]
Ejecución del servidor de desarrollo
Después de configurar sus modelos, vistas, plantillas y URL, puede ejecutar el servidor de desarrollo de Django para ver su aplicación web en acción:
python manage.py runserver
Abra un navegador web y navegue a http://127.0.0.1:8000/
para ver su aplicación web Django ejecutándose.
Conclusión
Django simplifica la creación de aplicaciones web potentes y robustas con Python. Esta guía ha cubierto los aspectos básicos de la configuración de un proyecto Django, la creación de una aplicación, la definición de modelos, la creación de vistas y plantillas, la configuración de URL y la ejecución del servidor de desarrollo. Con Django, puede crear aplicaciones web escalables y fáciles de mantener con facilidad.