Introducció
Django és un framework de desenvolupament web d'alt nivell per a Python que permet construir aplicacions web ràpidament i amb un codi net i pragmàtic. Va ser creat per desenvolupar aplicacions web ràpidament i amb menys codi, seguint el principi de "Don't Repeat Yourself" (DRY).
Característiques Clau de Django
- Alt Nivell: Django proporciona moltes funcionalitats integrades que permeten als desenvolupadors centrar-se en escriure la lògica de la seva aplicació en lloc de reinventar la roda.
- Seguretat: Django inclou proteccions contra molts errors de seguretat comuns, com ara injeccions SQL, cross-site scripting (XSS), cross-site request forgery (CSRF) i clickjacking.
- Escalabilitat: Django està dissenyat per escalar fàcilment, permetent gestionar grans quantitats de trànsit i dades.
- Versatilitat: Pot ser utilitzat per a una àmplia varietat de projectes, des de llocs web petits fins a aplicacions web complexes.
Components Principals de Django
Django segueix el patró de disseny Model-View-Template (MVT), que és similar al Model-View-Controller (MVC). A continuació es descriuen els components principals:
- Models: Representen l'estructura de dades de l'aplicació. Cada model és una classe Python que es tradueix en una taula de la base de dades.
- Views: Gestionen la lògica de l'aplicació. Les vistes reben les sol·licituds HTTP, processen les dades i retornen les respostes adequades.
- Templates: Són fitxers HTML que defineixen la presentació de les dades. Utilitzen el motor de plantilles de Django per generar HTML dinàmic.
Avantatges de Django
- Desenvolupament Ràpid: Django permet desenvolupar aplicacions web de manera ràpida gràcies a les seves eines i funcionalitats integrades.
- Comunitat Activa: Django té una comunitat gran i activa que proporciona suport, documentació i molts paquets reutilitzables.
- Documentació Excel·lent: La documentació oficial de Django és molt completa i detallada, facilitant l'aprenentatge i la resolució de problemes.
Exemples Pràctics
Exemple 1: Creació d'un Model
from django.db import models class Article(models.Model): title = models.CharField(max_length=100) content = models.TextField() published_date = models.DateTimeField(auto_now_add=True) def __str__(self): return self.title
Explicació:
title
: Un camp de text amb una longitud màxima de 100 caràcters.content
: Un camp de text llarg.published_date
: Un camp de data i hora que s'estableix automàticament quan es crea l'article.__str__
: Una funció que retorna una representació en cadena de l'objecte.
Exemple 2: Creació d'una Vista
from django.shortcuts import render from .models import Article def article_list(request): articles = Article.objects.all() return render(request, 'articles/article_list.html', {'articles': articles})
Explicació:
article_list
: Una funció que obté tots els articles de la base de dades i els passa a la plantillaarticle_list.html
.
Exemple 3: Creació d'una Plantilla
<!DOCTYPE html> <html> <head> <title>Article List</title> </head> <body> <h1>Articles</h1> <ul> {% for article in articles %} <li>{{ article.title }} - {{ article.published_date }}</li> {% endfor %} </ul> </body> </html>
Explicació:
- La plantilla mostra una llista d'articles amb els seus títols i dates de publicació.
Exercici Pràctic
Exercici: Crea un model Author
amb els següents camps:
name
: Un camp de text amb una longitud màxima de 50 caràcters.email
: Un camp de correu electrònic.
Solució:
from django.db import models class Author(models.Model): name = models.CharField(max_length=50) email = models.EmailField() def __str__(self): return self.name
Conclusió
Django és un framework potent i versàtil que facilita el desenvolupament d'aplicacions web segures i escalables. Amb una comunitat activa i una documentació excel·lent, és una opció ideal tant per a principiants com per a desenvolupadors experimentats. En els següents mòduls, explorarem com configurar l'entorn de desenvolupament i crear el teu primer projecte Django.
Curs de Desenvolupament Web amb Django
Mòdul 1: Introducció a Django
- Què és Django?
- Configuració de l'Entorn de Desenvolupament
- Creació del teu Primer Projecte Django
- Comprensió de l'Estructura del Projecte Django
Mòdul 2: Conceptes Bàsics de Django
- Aplicacions Django i Estructura del Projecte
- Enrutament d'URL i Vistes
- Plantilles i Fitxers Estàtics
- Models i Bases de Dades
- Interfície d'Administració de Django
Mòdul 3: Django Intermedi
Mòdul 4: Django Avançat
- Consultes Avançades amb Django ORM
- Models d'Usuari Personalitzats
- Senyalitzacions de Django
- Proves en Django
- Optimització del Rendiment