Django
Django est un framework de développement d'applications web. Il est conçu selon le modèle MVC et dans le respect de la philosophie DRY.
ORM (Object-relational mapper)
Django fournit un ORM (mapping objet-relationnel). Le modèle de données dans Django se présente comme une classe Python. Une fois celui-ci définie, l'ORM génère une interface d'accès aux données (API) en Python très complète.
Il est également possible de continuer d'écrire les requêtes en SQL.
Interface d'administration de données
Une application d'administration de données est fournie avec le framework. Celle-ci génère automatiquement l'interface HTML, très personnalisable, pour administrer les données.
URLs élégantes
Facile à utiliser, le mappeur d'urls (contrôleur) n'impose aucune contrainte. L’écriture d’applications REST devient un jeu d'enfant.
Templates
Un langage de templates intuitif et extensible permet de bien séparer la présentation du traitement et des données.
Système de cache
Pour des sites à fort trafic, Django offre plusieurs stratégies de cache. Pour cela vous pouvez choisir d'utiliser la mémoire vive, la base de données ou le système de fichier. Pour ne citer que ces deux solutions, Django peut facilement être couplé avec Squid ou memcached.
Internationalisation (i18n) & Localisation (l10n)
Django intègre les outils nécessaires permettant l'internationalisation des applications mais également la localisation de dates et nombres.
authentification
Django fournit son propre système d'identification et d'authentification. Celui-ci gère également des groupes. Il est possible de coupler celui-ci, à l'aide de plugins, avec LDAP, Kerberos ou Apache (et Shibboleth).
L'ensemble de permissions existantes peut aisément être étendu pour correspondre à vos besoins.
Introspection de la base de données
Django peut analyser la structure de la base de données et générer le modèle.
Serveur web de développement
Le serveur web fourni permet de démarrer le développement très rapidement. Aucune configuration additionnelle n'est nécessaire.
Django apps
De très nombreux plugins sont disponibles sur PyPI.
Sont nativement supportés :
- PostgreSQL
- MySQL
- Oracle
- SQLite
Et via des adaptateurs non officiels :
- Sybase SQL Anywhere
- IBM DB2
- Microsoft SQL Server 2005
- Firebird
- ODBC
Dans le cadre de développement d'applications web, nous utilisons beaucoup Django avec le plugin Django admin site. Celui-ci permet une grande personnalisation et nous donne la possibilité de fournir des interfaces de gestion de données très rapidement.
Django n'est pas un CMS ni un serveur d'application.