Saltar al contenido principal

Introducción a Django

Django es un marco de desarrollo web de Python de alto nivel que permite un desarrollo rápido y un diseño limpio y pragmático. Sigue el patrón arquitectónico Modelo-Vista-Controlador (MVC), lo que facilita la construcción de aplicaciones web con una mínima repetición de código. Django enfatiza la reutilización, la modularidad y el principio de "no repetirte a ti mismo" (DRY).

Historia de Django

Django fue creado por Adrian Holovaty y Simon Willison mientras trabajaban en el periódico Lawrence Journal-World en Kansas, EE. UU. Se lanzó como un proyecto de código abierto en julio de 2005 y rápidamente ganó popularidad debido a su simplicidad y potentes características. Django lleva el nombre del famoso guitarrista de jazz Django Reinhardt.

Características

  1. Mapeo objeto-relacional (ORM): Django proporciona un ORM de alto nivel que permite a los desarrolladores interactuar con la base de datos utilizando código Python en lugar de SQL. Esto facilita el trabajo con bases de datos y reduce el riesgo de ataques de inyección SQL. Aquí hay un ejemplo de cómo definir un modelo en Django:
from django.db import models

class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
  1. Interfaz de administración automática: Django genera automáticamente una interfaz de administración basada en los modelos definidos. Esta interfaz permite a los administradores gestionar los datos sin escribir código adicional. Aquí hay un ejemplo de cómo registrar un modelo en la interfaz de administración:
from django.contrib import admin
from .models import Book

admin.site.register(Book)
  1. Enrutamiento de URL y manejo de vistas: Django proporciona un potente sistema de enrutamiento de URL que asigna las URL a las vistas correspondientes. Las vistas son funciones o clases que manejan la lógica detrás de cada URL. Aquí hay un ejemplo de cómo definir un patrón de URL y una vista correspondiente:
from django.urls import path
from . import views

urlpatterns = [
path('books/', views.book_list, name='book_list'),
]
  1. Motor de plantillas: Django incluye un motor de plantillas que permite a los desarrolladores separar la lógica de presentación de la lógica de negocio. Las plantillas se escriben en HTML con etiquetas y filtros de plantilla de Django incrustados. Aquí hay un ejemplo de cómo renderizar una plantilla con datos:
from django.shortcuts import render
from .models import Book

def book_list(request):
books = Book.objects.all()
return render(request, 'books/book_list.html', {'books': books})
  1. Manejo de formularios: Django simplifica el proceso de manejar formularios, incluida la validación y representación de formularios. Proporciona clases de formularios incorporadas que se pueden integrar fácilmente en vistas y plantillas. Aquí hay un ejemplo de un formulario sencillo:
from django import forms

class BookForm(forms.Form):
title = forms.CharField(label='Título', max_length=100)
author = forms.CharField(label='Autor', max_length=100)
  1. Autenticación y autorización: Django incluye un sólido sistema de autenticación que maneja el registro de usuarios, inicio de sesión, cierre de sesión y gestión de contraseñas. También admite permisos basados en roles y proporciona decoradores para restringir el acceso a determinadas vistas. Aquí hay un ejemplo de una vista de inicio de sesión:
from django.contrib.auth import authenticate, login
from django.shortcuts import render, redirect

def login_view(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return redirect('dashboard')
return render(request, 'accounts/login.html')

Para obtener una lista completa de características y documentación detallada, puedes visitar el sitio web oficial de Django.

Ejemplos de aplicaciones Django

  1. Aplicación de encuestas: La documentación oficial de Django incluye un tutorial sobre cómo construir una aplicación de encuestas. Cubre varios aspectos de Django, incluyendo modelos, vistas, plantillas y formularios. Puedes encontrar el tutorial aquí.

  2. Aplicación de blog: Un ejemplo común de una aplicación Django es un blog. Típicamente incluye características como crear, editar y eliminar entradas de blog, autenticación de usuarios y funcionalidad de comentarios. Aquí hay un ejemplo de un modelo de blog sencillo:

from django.db import models
from django.contrib.auth.models import User

class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
author = models.ForeignKey(User, on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True)
  1. Aplicación de comercio electrónico: Django se utiliza a menudo para construir sitios web de comercio electrónico. Proporciona características como gestión de catálogos de productos, funcionalidad de carrito de compras, procesamiento de pedidos e integración de pagos. Aquí hay un ejemplo de un modelo de producto:
from django.db import models

class Product(models.Model):
name = models.CharField(max_length=100)
price = models.DecimalField(max_digits=8, decimal_places=2)
description = models.TextField()
image = models.ImageField(upload_to='product_images')

Estos ejemplos son solo un vistazo de lo que puedes lograr con Django. Su flexibilidad y extenso ecosistema de paquetes de terceros lo hacen adecuado para una amplia gama de aplicaciones web.

Recuerda consultar la documentación oficial de Django para obtener explicaciones detalladas, tutoriales y ejemplos de código. ¡Feliz codificación!