Home > Informatique > Présentation du framework web python : Django

Présentation du framework web python : Django

octobre 18th, 2008 Leave a comment Go to comments

Django (site officiel, site en français) est un framework web écrit en Python. Il permet de développer rapidement une application web dans ce même langage..

Dans le cadre de ma participation au projet de domotique Domogik, je suis en charge de développer la partie interface graphique qui devra fonctionner avec un navigateur. Le coeur du code de domotique étant déjà écrit en Python, nous avons pensé qu’il serait bien de rester homogène.

Evidemment avant de réinventer la roue (et donc de développer une application de A à Z), il vaut mieux voir ce qui a déjà été fait. Nous avons donc choisi le framework Django qui paraissait complet et simple à utiliser. Pour information, un framework est une base de travail qui contient un ensemble de composants logiciels, de conventions sur lequel votre code va s’appuyer. Les bénéfices sont la rapidité de développement et l’homogénéité des traitements dans votre application, ce qui facilitera la maintenance / les évolutions.

Alors pourquoi Django ?

Django est ce qu’on appelle un MVC (Modèle, Vue, Contrôleur) c’est à dire qu’il propose une architecture qui isole le modèle de données, le pilotage de l’application (contrôles, logique d’enchaînement des pages) et la présentation (l’affichage du contenu).

Voici les points forts de Django :

  • Il est simple d’utilisation. A partir du moment où vous avez des connaissances en programmation et quelques notions de Python, vous êtes opérationnels en très peu de temps.
  • Il est puissant : le meilleur exemple est la façon dont il gère les données. Pour être concret, je vous donne un aperçu :
    class Langage(models.Model):
    LANG_CHOICES = (
    ('l1', 'Python'),
    ('l2', 'Java'),
    ('l3', 'Php'),
    ('l4','Perl')
    )
    name = models.CharField(max_length=30, choices = CAPACITY_CHOICES)
    desc = models.CharField(max_length=255)

    Rien qu’avec ce morceau de code et avec l’exécution d’une simple ligne de commande, Django va :

    1) Générer le script SQL et créer toute la structure (les tables internes à Django ainsi que la table langage).
    2) Générer automatiquement une interface web qui va vous permettre de saisir les différents langages. Ici dans cet exemple j’aurai automatiquement une liste déroulante avec les quatre éléments ainsi qu’un champ texte pour saisir une description.
    3) A noter qu’il est possible de spécifier des clés étrangères, des relations n-aires… C’est pas magique ?

  • Il propose un système de templates efficace pour la partie présentation. En gros vous décrivez la structure de vos pages dans un fichier et ensuite pour chacune des pages vous redéfinissez simplement ce qui est spécifique (titre, contenu…).
  • Il est indépendant de la base de données. Un simple paramétrage dans le fichier de configuration (settings.py) et vous passez d’une base à l’autre. J’ai fait le test en utilisant MySql et PostgreSQL !
  • Il dispose d’un serveur de développement intégré. Pas besoin dans un premier temps d’avoir un serveur web configuré pour qu’il puisse fonctionner avec Python. De plus ce serveur est très léger et très rapide.
  • La documentation de Django est excellente : complète et pédagogique. Je vous conseille notamment l’excellent tutoriel (anglais) qui va vous permettre d’être opérationnel en très peu de temps. Il existe une version française mais attention elle se base sur Django 0.9, alors que la dernière version est 1.0, ce qui peut poser quelques problèmes de compatibilités notamment dans certains noms de variables. En revanche le principe reste le même donc vous pouvez le lire pour avoir une vision d’ensemble.
  • Il est facile à installer : il faut avoir Python (vaut mieux, hein ?) et les paquets MySql (python-mysqldb) et / ou PostgreSQL (python-pgsql, python-psycopg). Ensuite il suffit de décompacter l’archive de Django et de lancer le setup.
  • Il est écrit en Python : oui je sais les goûts et les couleurs… Cependant en toute objectivité Python est un formidable langage : il est puissant et simple d’utilisation. Venant du monde Java, je pense savoir de quoi je parle…

Voilà donc pour cette présentation. Il existe d’autres frameworks tels que Turbogears mais je ne le connais pas donc s’il y en a qui ont une opinion, n’hésitez pas à laisser un commentaire.

Categories: Informatique Tags: .: django .: python .: web
  1. calvin0c7
    octobre 19th, 2008 at 10:59 | #1

    C’et vrai qu’un framework simplifie le developement, mais au prix (parfois cher payé) d’un investissement en temps important.

    Ceci pour dire que lors de l’utilisation d’un nouveau framwork, il ne faut pas être effrayé par l’apparente lenteur des premiers développements. Le gain en temps sera visible bien après (au bout du xième écran, maintenance, évolution). Un framework n’est justifié à mon sens que pour des projets d’une certaine importance.

  1. No trackbacks yet.