Django

django
Nous avons eu quelques questions au sujet de Django après le lancement de run-up.

« C’est quoi, un framework? « , »Pourquoi celui-là et pas un autre », « Pourquoi Django pour un site simple » etc.

Donc on a décidé de se fendre d’un petit post pour expliquer notre vision des choses sur Django. Django est tout simplement un framework web, c’est à dire une bibliothèque de programmation augmentée de plusieurs outils pour vous simplifier le travail.

Django est basé sur python, un language orienté objet qui existe depuis une vingtaine d’années. Django est comparable à Symphony (pour php), cakephp, ruby on rails et une rafale de frameworks qui fleurissent depuis 10ans pour le développement web. l’avantage d’un (bon) framework, c’est de vous donner accès à des classes de haut niveau pour développer lus vite sans réinventer la roue, tout en gardant la granularité suffisante du language de base.

Django nous a séduit, car il dipose d’un ORM (mapping relationnel objet) plutôt efficace, d’une utilisation du design pattern MVC (modèle vue contrôleur), d’une interface d’amin automatiquement générée, d’une gestion des urls très fines et performante, d’un langage de template, de cache, d’outils de sécurité.

Développé depuis 20062003 par les développeurs d’un journal du Kansas, c’est un outil mature utilisé sur de nombreux sites. Django a été baptisé en hommage à Django Reihnardt C’est django que google utilise (avec un autre ORM) sur l’app engine. Si google s’en sert, ça doit pas être si mal…

magic-pony-django-wallpaper-green

La communauté a un sens certain de l’auto dérision

Comme on l’a dit plus haut, Django repose sur python. A la base, on était plutôt php. Mais un des avantages de python, c’est que ça ne sert pas qu’au web. Vous pouvez écrire des applis multi plateformes en python, automatiser des tâches systèmes sur votre desktop ou votre serveur. Php, ruby on rails, ça ne sert qu’au web. Ce qui choque au début avec python, c’est l’indentation.

Python n’utilise pas de bloc d’indentation comme des accolades, des begin ou je ne sais quoi. La structure est basée sur des retraits de paragraphes, et ça contraint à présenter un code super propre visuellement. Voici un extrait de code du livre de django

class Author(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=40)
email = models.EmailField()
class Book(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher)
publication_date = models.DateField()

Quand on a tendance à être quelque peu désordonné, ça aide à bien ranger son code ! Django est conçu pour développer rapidement, proprement et efficacement. En moins de 30 lignes de code, vous aurez développé un blog basique. Pour le développement, django embarque un serveur spécifique qui vous permet de travailler en local. Attention cependant. Django demeure un outil de développeur, et réaliser l’équivalent de CMS tels que Typolight ou wordpress va vous demander un peu de travail ! La documentation disponible sur django est très importante, mais principalement en anglais. La documentation française de django n’est pas encore achevée. Plusieurs ouvrages sont également disponibles (en anaglais). Au chapitre des inconvénients:

  • La plupart des ressources sont en anglais.
  • Comme tous les frameworks, il représente une charge pour le serveur.Mais bon, on préfère que la charge de travail soit pour le serveur plutôt que pour nous .
  • Peu d’hébergeurs proposent Django.

On vous recommande au passage notre hébergeur django et son pack gratuit, pour tester le framework. Enfin, pour répondre à une question issue des commentaires, on a jugé qu’il valait mieux développer nos applis maison que de bricoler des cms existants, ce qui requiert la compréhension leur code source. Django permet de faire ça plus vite, et mieux.
Une petite webographie :
django
www.djangoproject.com/
www.djangosites.org/
www.djangosnippets.org/
Un des évangélistes français de django
Benchmark de frameworks web
Django-fr
Le google group django

6 réflexions au sujet de « Django »

  1. La ligne de commande de python/django est également une aide précieuse et appréciable. Puis sous python, on à pas les tags de m….. de php!

  2. « Vous pouvez écrire des applis plateformes en python, automatiser des tâches systèmes sur votre desktop ou votre serveur. Php, ruby on rails, ça ne sert qu’au web »

    Tout ceci est faisable en Ruby aussi ;-)
    On n’est pas cantonné à faire du web en Ruby (RubyCocoa en est un assez bon exemple), et Ruby

    Ruby / Python c’est un peu le même combat, c’est surtout une question d’affinité avec le langage je pense.

  3. @damien
    Merci pour ces précisions.
    Effectivement, ruby permet tout cela, même si c’est assez confidentiel par rapport à python qui est plus ancien et plus répandu.
    J’ai par ailleurs écrit « ruby on rails », et pas ruby tout court.
    Mais mieux vaut comparer ce qui est comparable, python/ruby ou django/ror.
    Après avoir comparé les deux frameworks, on a opté pour Django à cause de la doc, de la facilité de réutilisation des applis et de l’orientation publication qui correspond à la plupart de nos projets.
    Le reste, c’est une question de feeling.

  4. Très bon article qui présente très bien les nombreux avantages de Django.

    C’est vrai qu’il vaut mieux parler un peu anglais… mais je crois que c’est un peu général au monde de l’informatique … mieux vaut s’y mettre et suivre les nouveautés qu’attendre qu’une âme charitable veuille bien traduire les docs.

    Le principal défaut de Django c’est qu’il y a peu d’hébergeurs qui le propose mais heureusement ceux qui le font sont très bons en particulier alwaysdata.