Django es un framework de desarrollo web de código abierto escrito en Python que permite construir aplicaciones web de manera rápida y eficiente. Fue creado originalmente por Adrian Holovaty y Simon Willison en 2003 y ha sido mantenido y mejorado por una activa comunidad de desarrolladores desde entonces.
CaracterÃsticas principales de Django:
Modelo-Vista-Controlador (MVC): Django sigue el patrón de diseño Modelo-Vista-Controlador (MVC), donde los modelos representan la estructura de la base de datos, las vistas son la interfaz de usuario y los controladores manejan la lógica del negocio.
ORM (Object-Relational Mapping): Django proporciona un potente ORM que permite interactuar con la base de datos utilizando objetos Python, en lugar de escribir consultas SQL directamente. Esto facilita la gestión y manipulación de los datos de la base de datos.
URLconf: Django utiliza un sistema de configuración de URL (URLconf) para definir las rutas y asociarlas con las vistas que manejarán las solicitudes.
Motor de plantillas: Django tiene un motor de plantillas que permite separar la lógica del código HTML, lo que facilita la creación de vistas dinámicas y reutilizables.
Autenticación y seguridad: Django proporciona un sistema de autenticación listo para usar, asà como funciones para proteger contra vulnerabilidades comunes, como ataques de inyección de SQL y ataques de falsificación de solicitudes entre sitios (CSRF).
Administrador de Django: Django incluye un potente administrador web que permite gestionar los datos de la base de datos sin necesidad de escribir código adicional.
Soporte para internacionalización y localización: Django ofrece funciones para crear aplicaciones web multilingües y adaptarlas a diferentes localizaciones.
Pruebas automáticas: Django facilita la escritura de pruebas unitarias y funcionales para garantizar la calidad del código y la corrección del funcionamiento de las aplicaciones.
Django es ampliamente utilizado en el desarrollo web debido a su enfoque práctico y su diseño que promueve el desarrollo rápido y la escritura de código limpio y fácil de mantener. Es especialmente popular en el desarrollo de aplicaciones web complejas, sitios web empresariales y aplicaciones que requieren una gestión de base de datos avanzada. Además, la comunidad activa y la abundancia de recursos y bibliotecas hacen que Django sea una elección sólida para muchos desarrolladores y proyectos web.
Aquà tienes algunos ejemplos sencillos de cómo desarrollar una aplicación web utilizando Django:
1. Creación de un proyecto:
django-admin startproject mi_proyecto
Esto creará una nueva carpeta llamada mi_proyecto
con la estructura básica de un proyecto de Django.
2. Creación de una aplicación:
cd mi_proyecto
python manage.py startapp mi_app
Esto creará una nueva carpeta llamada mi_app
dentro del proyecto, que contendrá los archivos y configuraciones especÃficos de la aplicación.
- Definición del modelo:
En el archivo models.py
de la aplicación, definimos el modelo de datos que queremos utilizar. Por ejemplo, creemos un modelo simple para representar un libro:
from django.db import models
class Libro(models.Model):
titulo = models.CharField(max_length=100)
autor = models.CharField(max_length=50)
anio_publicacion = models.IntegerField()
def __str__(self):
return self.titulo
4. Creación de las migraciones y aplicación en la base de datos:
python manage.py makemigrations
python manage.py migrate
Estos comandos crearán y aplicarán las migraciones necesarias para generar la tabla Libro
en la base de datos.
5. Creación de una vista:
En el archivo views.py
de la aplicación, definimos una vista para mostrar la lista de libros:
from django.shortcuts import render
from .models import Libro
def lista_libros(request):
libros = Libro.objects.all()
return render(request, 'lista_libros.html', {'libros': libros})
- Creación de una plantilla:
Creamos un archivo llamado lista_libros.html
en la carpeta templates
dentro de la aplicación para mostrar la lista de libros:
<!DOCTYPE html>
<html>
<head>
<title>Lista de Libros</title>
</head>
<body>
<h1>Lista de Libros</h1>
<ul>
{% for libro in libros %}
<li>{{ libro.titulo }} - {{ libro.autor }} ({{ libro.anio_publicacion }})</li>
{% endfor %}
</ul>
</body>
</html>
- Configuración de las URLs:
En el archivo urls.py
de la aplicación, definimos la URL que llevará a la vista lista_libros
:
from django.urls import path
from . import views
urlpatterns = [
path('libros/', views.lista_libros, name='lista_libros'),
]
8. Inicio del servidor de desarrollo:
python manage.py runserver
Con estos pasos, tendrás una aplicación web básica en Django que muestra una lista de libros en la URL /libros/
.
Este es solo un ejemplo muy simple, pero Django ofrece muchas más
funcionalidades y caracterÃsticas avanzadas para el desarrollo de
aplicaciones web más complejas y completas.