Vue d'ensemble
Django 1.3, publié le 23 mars 2011, introduit les vues basées sur les classes (Class-Based Views), un changement majeur dans la façon de structurer les vues Django. Cette version ajoute également le support des fichiers statiques et la journalisation via le module logging de Python.
Fonctionnalités principales
Vues basées sur les classes
Les vues basées sur les classes permettent de réutiliser et de composer la logique de vue grâce à l'héritage. Django fournit des vues génériques pour les opérations courantes : listes, détails, création, mise à jour et suppression.
from django.views.generic import ListView, DetailView
class ListeArticles(ListView):
model = Article
template_name = 'blog/liste.html'
context_object_name = 'articles'
paginate_by = 10
def get_queryset(self):
return Article.objects.filter(publie=True)
class DetailArticle(DetailView):
model = Article
template_name = 'blog/detail.html'
context_object_name = 'article'
def get_queryset(self):
return Article.objects.filter(publie=True)
# urls.py
# url(r'^articles/$', ListeArticles.as_view()),
# url(r'^articles/(?P<pk>\d+)/$', DetailArticle.as_view()),
Gestion des fichiers statiques
Le framework staticfiles centralise la gestion des fichiers CSS, JavaScript et images. La commande collectstatic rassemble tous les fichiers statiques pour le déploiement en production.
# settings.py
STATIC_URL = '/static/'
STATIC_ROOT = '/var/www/static/'
INSTALLED_APPS = [
'django.contrib.staticfiles',
# ...
]
# Dans le template HTML :
# {% load static %}
# <link rel="stylesheet" href="{% static 'css/style.css' %}">
# <script src="{% static 'js/app.js' %}"></script>
# Déploiement : collecte tous les fichiers statiques
# python manage.py collectstatic
