Developpez.com

Le Club des Développeurs et IT Pro

Le framework open source Django sort en version 1.7

Avec un lot de nouveautés pour accélérer le développement web 2.0

Le 2014-09-09 12:22:52, par Hinault Romaric, Responsable .NET
Le framework Django 1.7 est disponible après plus d’un an de développement. Il s’agit de la version la plus importante depuis la version 1.0.

Pour rappel, Django est un framework populaire écrit en Python. Il a pour but de rendre le développement web 2.0 simple et rapide. D’ailleurs, le projet a pour slogan « le framework web pour les perfectionnistes sous pression ».

Django est utilisé par plusieurs sites populaires comme le Washington Times, Pinterest, Mozilla ou encore Instagram. Il a également été utilisé par Google comme base pour sa plateforme Cloud App Engine.

Cette nouvelle version introduit plusieurs nouvelles fonctionnalités et de nombreuses améliorations, dont l’intégration d’un nouveau système de migration de base de données. Le système de migration de schéma de l’outil permet d’appliquer des modifications apportées au modèle de l’application (ajout d’un champ, suppression d’un champ, etc.) directement dans le schéma de la base de données. Le système de migration est conçu pour fonctionner de façon quasi automatique. Cependant, les développeurs ont la possibilité de définir quand faire les migrations et de consulter les problèmes qui peuvent survenir lors d’une migration.

Le concept d’applications Django a été complètement remanié. Cette version marque un changement de la vision traditionnelle d’une application comme une entité étroitement liée à un modèle. Ainsi, les applications Django ne sont plus liées à l’existence d’un des fichiers de modèle, et peuvent désormais spécifier les données de configuration (app registry) et le code à exécuter lorsque Django démarre.

Django 1.7 introduit un nouveau framework de contrôle qui permet de détecter des problèmes communs, comme les modèles non validés, et de fournir des conseils pour les résoudre. Ce framework est extensible et les développeurs peuvent ajouter des contrôles supplémentaires pour de nouvelles applications.

Pour faciliter la migration des schémas et l’utilisation des clés composites dans les futures versions de Django, l’API « Field » s’enrichit de la nouvelle méthode « deconstruct() », qui envoie un tuple de quatre valeurs qui permet à n’importe quel champ d’être sérialisé dans un fichier.

Django 1.7 comprend également des optimisations de performances. Des fonctionnalités ayant atteint la fin de leur période de dépréciation ont été supprimées dans cette version.

La sortie de cette version marque la fin du support de Django 1.5. Django 1.6 continuera à bénéficier d’une prise en charge jusqu’à la publication de Django 1.8. Django 1.4, quant à lui, bénéficiant d’un support à long terme, aura encore droit à des mises à jour jusqu’en mars 2015.

Django 1.7 est disponible en téléchargement sous licence open source BSD. Le framework nécessite Python 2.7 ou version supérieure.

Télécharger Django 1.7

Source : Notes de version

Et vous ?

Utilisez-vous Django ? Que pensez-vous de ce framework ?
  Discussion forum
9 commentaires
  • MarieKisSlaJoue
    Membre expert
    J'avais essayer Django et le gros problème que j'avais rencontré c'était des source et tuto très vite obsolète par rapport à la version current, du coup ça ma vite refroidis pour aller plus loin. Pourtant du peu que j'ai fait avec je trouve que c'est un très bon framework pour web. Et pourtant dieu sait que je n'aime pas faire du développement web !
  • jedema
    Membre régulier
    C'est vrai qu'on trouve rapidement de la documentation obsolète. Surtout sur la doc française.
    Parce que la documentation anglophone est très bien fournie et de qualité mais j'ai été obligé de me mettre à l'anglais pour ça.

    En tous cas cette version 1.7 apporte un lot de nouveautés interessantes. Je travaille depuis presque 2 ans avec Django et c'est vraiment un plaisir de travailler avec.
  • FCDB
    Membre régulier
    Alex quoi??? Django a un ORM intégré et un admin intégré. Symfony 1 et Django sont quasi identiques sur les concepts...
  • Alex-L
    Membre actif
    Envoyé par FCDB
    Alex quoi??? Django a un ORM intégré et un admin intégré. Symfony 1 et Django sont quasi identiques sur les concepts...
    Je n'ai pas dit que Django n'avait pas son ORM (à moins que je me suis mal fait comprendre ), l'administration aussi, j'avais oublié, est un réel avantage de ce framework!
    J'ai commencé sur Symfony2 donc je peux pas confirmer ton propos
  • jedema
    Membre régulier
    Pour moi les avantages de Django sont nombreux.

    • Le systèmes des formulaires (simple à utiliser) dont on peut étendre les possibilités de manière impressionnante.
    • Les Class Based Views qui permettent en un rien de temps de faire des interfaces CRUD.

    Et effectivement lorsqu'on code bien, on a une impression de code propre et ce n'est pas une corvée que de relire des lignes.

    Laravel semble se diriger aussi vers un code propre et facile à lire. D'ailleurs les frameworks PHP ont un réel avantage : le fait que tous les hébergeurs proposent PHP. Avec Python on est obligé de se diriger vers des solutions PaaS ou des dédiés.

    Pour Alex : j'ai essayé de faire l'inverse moi. Passer de Django à Symfony 2 : J'ai trouvé que le système qui permettait de définir des models était très verbeux. On écrivait très rapidement beaucoup de lignes pour peu de choses.
    D'ailleurs le fait qu'il soit conseillé de passer par la ligne de commande pour définir un model m'a rebuté. Pourquoi ont-ils choisi un système aussi complexe ?
  • Alex-L
    Membre actif
    Envoyé par hallbid

    Pour Alex : j'ai essayé de faire l'inverse moi. Passer de Django à Symfony 2 : J'ai trouvé que le système qui permettait de définir des models était très verbeux. On écrivait très rapidement beaucoup de lignes pour peu de choses.
    D'ailleurs le fait qu'il soit conseillé de passer par la ligne de commande pour définir un model m'a rebuté. Pourquoi ont-ils choisi un système aussi complexe ?
    Oui, un peu machine à gaz de ce côté, je crois que la complexité vient du fait que le serveur PHP ne fait que interpréter du code PHP alors que pour Django, le serveur Python (adapté pour Django justement), détecte chaque changement et permet donc une gestion du code plus légère.
  • SurferIX
    Membre chevronné
    Envoyé par Alex-L
    J'ai eu du mal à m'y faire avec la gestion des bases de données, comparé aux frameworks PHP comme Symfony avec leur ORM intégré c'est moins facile avec Django!
    Mais bon, on s'y fait plus ou moins et on apprécie la propreté du code Python et sa rapidité (du moins pour le web).


    Lis tout ici : le créateur de symfony lui même dit qu'il s'est très fortement inspiré de Django pour faire Symfony...
  • Alex-L
    Membre actif
    Envoyé par SurferIX


    Lis tout ici : le créateur de symfony lui même dit qu'il s'est très fortement inspiré de Django pour faire Symfony...
    Oui je savais que Symfony avait forké le moteur de template de Django, mais je parlais au niveau de la base de données qui est géré différemment.
  • Alex-L
    Membre actif
    J'ai eu du mal à m'y faire avec la gestion des bases de données, comparé aux frameworks PHP comme Symfony avec leur ORM intégré c'est moins facile avec Django!
    Mais bon, on s'y fait plus ou moins et on apprécie la propreté du code Python et sa rapidité (du moins pour le web).