Sortie de Django 1.1

Posté par (page perso) . Modéré par Florent Zara.
Tags :
20
29
juil.
2009
Python
Ce matin est sortie la version 1.1 du framework web Django écrit en Python. Onze mois après la 1.0, de très bonnes nouvelles se retrouvent dans les notes de version de cette nouvelle mouture.

Ce Framework , basé sur un concept MVC, est conçu pour le développement rapide et reprend la plupart des grands principes de Python (« Explicit is better than implicit », notamment). Ce qui en fait alors la plate-forme de développement Web idéale pour les perfectionnistes sous pression.

Je vous propose donc de découvrir les quelques nouveautés que vous offrent les développeurs Django. Correctifs de sécurité
Une faille à été corrigée sur le mini serveur de développement qui permettait d'avoir accès a n'importe quel fichier du disque accessible en lecture via une URL forgée. Les versions concernées sont :
  • trunk
  • 1.0.x
  • 0.96
Voici la traduction sommaire de quelques points que vous trouverez dans les notes de version.

Modèles :
  • Champs retardés : les nouvelles méthodes defer() et only() s'ajoutent au possibilités de vos Querysets. Elles permettent d'omettre certaines colonnes lors de la requête vers la base et d'économiser le temps de conversion en objets Python. Cela peut s'avérer très utile à des fins d'optimisation ou quand certains champs de vos modèles sont particulièrement longs.
  • Modèles non gérés : vous pouvez retirer à Django la responsabilité de créer ou vider les tables pour un modèle donné.
  • Modèles « Proxyfiés » :
    Pour ne rajouter qu'une méthode ou un manager à un modèle existant vous pouvez créer des modèles « proxy » qui vont éviter à Django de créer une table pour ce nouveau modèle.
Ces deux aspects sont assez proches. Pour faire simple :
  • Si vous voulez interagir avec quelques colonnes des tables d'une base de donnée déjà existante : Les modèles non managés sont fait pour vous.
  • Si vous voulez modifier la face "Pythonique" d'un modèle alors vous aimerez les modèles proxyfiés
Interface d'administration :
  • Listes modifiables : Vous pourrez, grâce à l'option list_editable permettre l'édition des champs de vos objets dans la page qui liste ceux-ci.
  • Actions administrateur : Vous pouvez définir des actions à appliquer à un set d'objets listés dans l'interface d'administration. (capture d'écran )
Le client de test :
  • Plus rapides ! (jusqu'à 10 fois dans certains cas).
  • Le client de test peut suivre les redirections grâce à l'argument follow lors de vos get() et post().
  • Vous pouvez (enfin) accéder directement aux variables stockées dans le contexte renvoyé au client de test.
Les vues :
Autres détails :
  • On peut enfin exporter nos données via la commande dumpdata modèles par modèles et non plus uniquement par application.
  • Un nouveau backend d'authentification supporte la variable d'environnement 'REMOTE_USER' pour déléguer le travail au serveur web.
  • Une nouvelle fonction redirect() pour rendre les redirections encore plus fun ! Votre code aura un beau pwal sans HttpResponseRedirect(reverse()) !
  • Namespace dans les urls nommées.
  • Améliorations de GéoDjango.
  • Nos amis de la dernière grosse base de données vraiment libre voient leur backend supporter l'autocommit.
  • Et d'autres à découvrir...
Rétro-compatibilité
Malgré toute l'attention qui est portée sur la stabilité de l'API à long terme certains points sont à vérifier si vous voulez mettre à jour. N'hésitez pas vous rendre sur la page listant les changements dans Django 1.1 pour éviter toute mauvaise surprise lors de la mise à jour.

Communauté Française
Il est à noter que toutes les bonnes volontés sont demandées pour faire vivre le site de la communauté française de Django. En effet la documentation originale fait honneur au projet, mais il manque des bonnes volontés pour la traduire ou écrire des tutoriels et faire ainsi la promotion de cet excellent outil chez les francophones. Rendez vous sur la mailling list que vous trouverez sur le site ou mieux : passez nous voir sur le canal IRC #django-fr de Freenode où vous serez impressionés de voir tant de développeurs qui vous montreront, qu'eux aussi on retrouvé le sourire avec Python et Django.

Python dans le web
Si vous voulez en apprendre plus sur les différentes façon de faire du web avec Python, et que vous avez raté la fabuleuse PyConFR 2009 à la cité des sciences organisé par l'Association Francophone de PYthon (l'AFPY, je vous propose de vous rendre sur les pages des conférences vidéos enregistrées lors de cet évènement.

Ai-je besoin de vous dire avec quel framework ce dernier site a été réalisé ?
  • # à propos de Django

    Posté par (page perso) . Évalué à 2.

    • [^] # Re: à propos de Django

      Posté par . Évalué à 4.

      Y a-t'il un résumé de cette présentation? J'ai commencé à l'écouter mais ça dure environ une heure -- oui je sais, chuis une graaauuuuusse feignasse ;) .

      Je me suis arrêté juste après que Cal Henderson a introduit les trois raisons, dont python et les environnements de travail. Qu'explique-t'il au juste?
      • [^] # Re: à propos de Django

        Posté par (page perso) . Évalué à 2.

        Globalement il voit les choses sous l'angle de quelqu'un qui doit assurer la montée en charge de grosses applications web (en particulier Flickr dans son cas) Il se définit lui-même comme un "scale nerd". Il revient donc sur l'ORM, qui ne permet pas aux DBAs d'optimiser les requêtes, sur l'impossibilité de mettre en oeuvre des techniques tel que le sharding, etc...

        On peut lui opposer que de toutes façons la plus grande partie des applications créées sous Django ne connaitront jamais l'essor de Flickr.

        On peut aussi voir les slides (http://www.slideshare.net/iamcal/why-i-hate-django-part-12-p(...) mais la présentation est vraiment très drôle et en plus on apprend plein de choses sur la montée en charge d'une appli web.
        • [^] # Re: à propos de Django

          Posté par . Évalué à 2.

          Merci pour les infos. Je retournerai à la présentation un peu plus tard. Auparavant, je vais découvrir ce que sont «ORM» et «sharding». ;)

          Ceci dit, j'ai effectivement eu un aperçu de l'humour du gaillard, alors qu'il présentait PHP comme un langage pour les développeurs sérieux... J'ai pouffé (oh, juste un peu, quoi, je connais pas bien python). J'en déduis donc que le moteur Python pourrait ne pas être aussi optimisé pour la montée en charge que ne l'est PHP... Mais je gagerais bien que ça ne durera pas très longtemps.
        • [^] # Re: à propos de Django

          Posté par . Évalué à 3.

          On peut aussi voir les slides (http://www.slideshare.net/iamcal/why-i-hate-django-part-12-p(...) mais la présentation est vraiment très drôle

          J'ai commencé à lire 50 slides sur la centaine que contient la présentation, et c'est plein de vide (le seul argument concret : le « significant whitespace » de Python. Voilà une critique féroce de Django !). Résultat : j'abandonne. Les neuneus qui se prennent pour des showmen et remplissent leurs présentations de photos « amusantes » et autres lolcatz me les brisent. Qu'ils retournent sur leur Facebook échanger la dernière blague à la mode Fun Radio, mais qu'ils évitent de se croirent intéressants.
          • [^] # Re: à propos de Django

            Posté par . Évalué à 4.

            > Les neuneus qui se prennent pour des showmen et remplissent leurs présentations de photos « amusantes » et autres lolcatz me les brisent.

            Marrant en général ce sont les meilleurs présentateurs. Inconvénient leurs slides sont inutilisables sans l'orateur. C'est, entre autre, ce qui rend la présentation en vraie intéressante. Les mecs réfléchissent un peu plus à leur présentation que faire des bullet lists. Faut avoir le niveau et l'expérience pour que ca passe bien... Des slides ca sert de support à une présentation, si ce n'est pas pour présenter alors autant écrire un article.

            Je ne l'ai pas regardé puisque cette présentation ne m'intéresse pas vraiment, mais il me semble que tu as la vidéo. L'as tu regardé ? Connaissant pas mal le domaine mais pas django, et ayant juste survolé les slides, je vois les idées qu'il avance et ca ne me semble pas du tout vide. Tu as regardé la partie 2 au moins ?.


            Cela dit, même si ca présentation était complètement ratée, traiter Cal Henderson de "neuneu" c'est assez comique. Pour information c'est l'auteur de "Building Scalable Web Sites" soit l'un des livres de référence sur le sujet. Le dimanche matin c'est aussi le chief architect de flickr.
            • [^] # Re: à propos de Django

              Posté par (page perso) . Évalué à 1.

              Marrant en général ce sont les meilleurs présentateurs

              Ça dépend beaucoup, il y en a aussi qui se croient le meilleurs présentateur et d'autre qui ne savent pas ce qu'ils font.

              Inconvénient leurs slides sont inutilisables sans l'orateur

              Ce qui veut dire que tu ne peux pas la relire par la suite, ce qui est plutôt embêtant.

              Des slides ca sert de support à une présentation

              C'est pour ça qu'on met le plan de ce qu'on raconte dessus en général.

              si ce n'est pas pour présenter alors autant écrire un article.

              Tu peux mettre les idées principales sans tout développer pour autant.

              « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

          • [^] # Re: à propos de Django

            Posté par (page perso) . Évalué à 1.

            Oui, enfin sauf que là t'es complètement à coté de la plaque puisqu'en plus d'être drôle il est très pertinent. Quelqu'un qui a de bonnes idées et qui sait les faire passer, c'est pas ce que j'appelle un neuneu.

            Des slides ça sert de support à présentation. Si ça contient tout le contenu de la présentation, il y a de grandes chances pour que celle-ci soit soporifique, et donc inutile.

            Pour les significant whitespaces, on comprend clairement dans la vidéo qu'il s'agit d'une boutade plus que d'une véritable critique.

            Enfin bref, le mieux c'est de regarder *avant* de commenter, ça permet de faire des commentaires plus intelligents.
            • [^] # Re: à propos de Django

              Posté par . Évalué à 2.

              Pour les significant whitespaces, on comprend clairement dans la vidéo qu'il s'agit d'une boutade plus que d'une véritable critique.

              Oui, donc cela veut dire qu'en 50 slides il n'y a *aucun* contenu. Je n'appelle pas ça « savoir faire passer ses idées », mais bon...

              Enfin bref, le mieux c'est de regarder *avant* de commenter, ça permet de faire des commentaires plus intelligents.

              J'ai en effet regardé 50 slides et j'ai arrêté, de guerre lasse.
              Quant à la vidéo, c'est beaucoup plus pénible en général qu'un support écrit, surtout quand on veut avoir une idée d'ensemble (impossible de survoler une vidéo).

              Enfin, pour ce qui est de la drôlerie, c'est une affaire de goût, mais là où une blague (même nulle) de temps à autre ne gêne pas, quand ça constitue plus de la moitié de la présentation ça devient très pénible. Personne ne va voir ce genre de gars pour rigoler pendant deux heures (il y a les Monty Python pour ça), mais bien pour apprendre des choses (supposées) intéressantes.
              • [^] # Re: à propos de Django

                Posté par (page perso) . Évalué à 1.

                Je te parle de l'intérêt de la vidéo, tu me parles des slides... quand on y met de la mauvaise volonté on ne peut pas avancer. Bref, je laisse tomber, tant pis pour toi après tout.
                • [^] # Re: à propos de Django

                  Posté par . Évalué à 2.

                  Mauvaise volonté peut-être de celui qui n'a pas lu (ou feint ne pas avoir remarqué) la phrase suivante :
                  « Quant à la vidéo, c'est beaucoup plus pénible en général qu'un support écrit, surtout quand on veut avoir une idée d'ensemble (impossible de survoler une vidéo). »
              • [^] # Re: à propos de Django

                Posté par (page perso) . Évalué à 4.

                Les meilleures orateurs sont (àmha) ceux qui ne se prennent pas trop au sérieux. Encore une fois, les slides sont un support de présentation. Le contenu est normalement dans la présentation, pas sur les slides. Après, si le support te paraît léger, c'est simple : tu prends des notes.

                Y'a rien de pire qu'une présentation où tout est sur les slides et que l'orateur "lit le contenu". Effectivement dans ces conditions, un livre ou un article est plus utile...
  • # Explicite plutôt qu'implicite...

    Posté par . Évalué à 6.

    "Nos amis de la dernière grosse base de données vraiment libre voient leur backend supporter l'autocommit."
    Nommer la base de données en question n'aurait peut-être pas été du luxe...
  • # Quelques corrections

    Posté par . Évalué à 5.

    Voici ce que j'aurais écrit:
    «Modèles non gérés» au lieu de Modèles non managés.
    «Listes modifiables» au lieu de Listes éditables.
    «Traitement conditionnel des vues (conditional view processing)».
    «environnement de travail» au lieu de framework.
    «[...] où vous serez impressionnés de voir [...]» au lieu de [...] où vous serez impactés de voir tant de développeurs [...].

    Sinon, je ne me suis pas encore mis à Python mais je sais que, comme Perl, ce langage est incontournable pour être présent dans des projets importants, sans compter l'administration du système.

    Merci pour ces détails en tous cas.
    • [^] # Re: Quelques corrections

      Posté par (page perso) . Évalué à 2.

      «Pour ne rajouter qu'une méthode ou un manager à un modèle existant vous pouvez créer des modèles...»

      J'imagine qu'il manque le "vous", ou alors j'ai un problème de compréhension...
    • [^] # Re: Quelques corrections

      Posté par (page perso) . Évalué à 1.

      «environnement de travail» au lieu de framework.

      Ou « Cadriciel » ? :)
      Les tentatives de traduction de ce mot sont assez amusantes à voir sur la page wikipedia
      Il n'empêche que je préfère la dénomination Framework

      «[...] où vous serez impressionnés de voir [...]» au lieu de [...] où vous serez impactés de voir tant de développeurs [...]

      La tournure est bancale mais a une justification particulière :)

      Sinon je te remercie pour les autres propositions, j'y penserai pour la prochaine version.
    • [^] # Re: Quelques corrections

      Posté par (page perso) . Évalué à 2.

      > «Listes modifiables» au lieu de Listes éditables.

      juste en passant, pour moi ce n'est pas le même sens et les deux sont bien français je trouve.

      Une liste modifiable indique plutôt une liste dont on va changer l'ordre.
      Une liste éditable me fait plus penser qu'on va éditer les valeurs composant cette liste en priorité, ce qui correspond tout à fait aux listes qu'on trouve dans les formulaires dans laquelle on peut tout de même saisir une entrée.

      Après, c'est ptetre moi aussi (ça serait pas la première fois...)
  • # django Vs google app engine

    Posté par . Évalué à 1.

    quelqu'un pourrait m'expliquer le processus de developpement de API google app engine (qui repose sur django) et le developpement de django lui meme ?

    ces nouvelles fonctionnalité de django vont etre implémenté dans google app engine ?
  • # django Vs google app engine

    Posté par . Évalué à -2.

    quelqu'un pourrait m'expliquer le processus de developpement de API google app engine (qui repose sur django) et le developpement de django lui meme ?

    ces nouvelles fonctionnalité de django vont etre implémenté dans google app engine ?
  • # Comment débuter ?

    Posté par . Évalué à 1.

    Quelles sont les meilleures ressources (en plus de la documentation officielle) pour débuter avec Django ?

    On peut déjà attaquer Django sans connaître Python ? Si non, même question que la première mais pour Python :)
    • [^] # Re: Comment débuter ?

      Posté par (page perso) . Évalué à 1.

      Je dirais qu'il vaut mieux commencer par Python, car Django est un framework écrit en Python.

      Une fois la base de Python acquise, le site de Django propose un bon tutorial ici : http://docs.djangoproject.com/en/dev/intro/tutorial01 (a lire en faisant ce qui est demandé, sinon ça perd son intérêt)

      Le reste de la doc est plutôt bien foutue, et puis, tu as les sources !
      • [^] # Re: Comment débuter ?

        Posté par (page perso) . Évalué à 2.

        Tout à fait. C'est illusoire de vouloir utiliser correctement un framework tel que django sans maitrisé les bases du langage sur lequel il est basé.

        Non seulement Djang est écrit en python, mais il faut aussi écrire ses applications en python. Django n'étant qu'une "couche intermédiaire" permettant de travailler facilement en MVC (expliqué dans la dépêche) et de proposer des outils de templating, ou d'accès aux données.

        Dans tous les cas, il faut écrire du code en python pour obtenir une application Django... donc...

        Et python s'adapte, je trouve, très bien aux débutants. La syntaxe est un peu rigide mais elle peut être vite maitrisée. Le livre de Gerard Swinenn ( http://www.framasoft.net/article1971.html ) peut être un bon départ pour démarrer en python.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.