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.

python
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.

python
# 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

Sources