Partage
  • Partager sur Facebook
  • Partager sur Twitter

Django, à quoi dois-je m'attendre ?

    14 août 2010 à 10:50:09

    Bonjour,

    Depuis un mois ou deux je me penche sur une question : dois-je apprendre et utiliser Django ?
    Sur le papier, c'est super, par contre il y a quelques question qui demandent réponse.
    Étant habitué au PHP sans framework, j'étais assez souple dans tout ce que je faisais. Quand sera t-il ?
    J'ai de bons exemples.

    Par exemple déjà, comment je fais une page d'index sans utiliser de modèle ? Direct_to_template ? Si je veux mettre un compteur de requêtes SQL, de temps de génération et de visiteurs, venant d'un autre modèle, je fais comment ?

    C'est des petits exemples mais çà permettra que je comprenne mieux le fonctionnement pour ensuite réaliser ce genre de choses.

    Merci.
    • Partager sur Facebook
    • Partager sur Twitter
      14 août 2010 à 11:45:39

      Salut,

      Moi aussi j'ai commencé par du PHP sans framework et je me suis mis à Django :)
      Franchement tu fais à peu près tout ce que tu veux avec, tu as pas vraiment de limitations… Et si jamais quelque chose ne te convient pas tu peux utiliser autre chose ou coder un truc à ta sauce (même si en pratique ça arrive jamais).

      Pour faire une page d'index « statique » tu peux utiliser direct_to_template oui (ou alors carrément les flatpages qui sont une autre méthode).

      Pour le compteur de requêtes SQL et le temps de génération ça doit être assez simple à implémenter (mais personnellement je vois pas l'intérêt en production). Si c'est juste pour le voir toi, tu peux utiliser django debug toolbar par exemple ;)
      Ou sinon tu peux regarder ce code : http://code.djangoproject.com/wiki/PageStatsMiddleware

      Et pour le compteur de visiteurs tu peux te faire un modèle avec l'ip, et le temps de dernière visite. Ou sinon tu peux peut-être aussi compter le nombre de sessions actives…

      Voilà :)
      • Partager sur Facebook
      • Partager sur Twitter
        14 août 2010 à 16:17:52

        Pour la souplesse perso j'ai une grosse préférence pour tornadoweb :)
        • Partager sur Facebook
        • Partager sur Twitter

        Blond, bouclé, toujours le sourire aux lèvres...

          15 août 2010 à 18:21:31

          Dans mon cas ca m’a permis d'apprendre à avoir un projet carré sans me prendre la tète. Et j'ai réussi à faire des choses qu’avec PHP, je n’arriver pas.

          L’autre chose c’est le Framework qui gère le Mysql, donc une bonne prise de tète en moins.
          • Partager sur Facebook
          • Partager sur Twitter
            16 août 2010 à 14:09:05

            Citation : hazl51

            Dans mon cas ca m’a permis d'apprendre à avoir un projet carré sans me prendre la tète. Et j'ai réussi à faire des choses qu’avec PHP, je n’arriver pas.

            L’autre chose c’est le Framework qui gère le Mysql, donc une bonne prise de tète en moins.



            L'ORM oui. Effectivement c'est vraiment très bien, car ce prendre la tête avec ces requêtes voilà. Mais je trouve qu'il y va un peu comme un porc sur les requêtes moi ...
            • Partager sur Facebook
            • Partager sur Twitter
              16 août 2010 à 15:00:16

              Globalement, avec un bon usage des select_related() tu peux facilement faire autant de requêtes que sans ORM je pense.
              En tout cas je surveille toujours les requêtes SQL qu'il fait, et je l'ai quasiment jamais vu en faire plus que ce qui était nécessaire, sauf dans des cas très spécifiques.
              Et en plus avec une utilisation judicieuse du cache tu peux les réduire encore.
              • Partager sur Facebook
              • Partager sur Twitter
                16 août 2010 à 22:56:32

                Citation : palkeo

                Globalement, avec un bon usage des select_related() tu peux facilement faire autant de requêtes que sans ORM je pense.
                En tout cas je surveille toujours les requêtes SQL qu'il fait, et je l'ai quasiment jamais vu en faire plus que ce qui était nécessaire, sauf dans des cas très spécifiques.
                Et en plus avec une utilisation judicieuse du cache tu peux les réduire encore.



                Effectivement son framework de cache est une fonction que j'attends bien ! C'est de manière "automatique" où à configurer ? Possible d'utiliser memcached et consort me semble t-il ?
                • Partager sur Facebook
                • Partager sur Twitter
                  17 août 2010 à 3:09:15

                  Pour le cache, tu peux choisir par quoi le cache sera géré, et c'est possible d'utiliser memcached :)

                  Et pour son utilisation, tu as vraiment des tonnes de méthodes :
                  Tu peux utiliser un « middleware » qui va automatiquement mettre en cache toutes les pages.
                  Tu peux utiliser un décorateur pour cacher une vue spécifique.
                  Ou alors tu peux mettre en cache des portions de templates.
                  Sinon, tu peux aussi utiliser une API pour créer et récupérer des valeurs dans le cache.

                  Et puis en plus de ça tu peux utiliser le cache du côté navigateur, avec là aussi des tonnes de moyens :
                  Tu peux exécuter une vue qui va afficher des objets seulement si la date de création de l'objet le plus récent est plus récente de celle que le navigateur à en cache.
                  Tu peux utiliser le cache du navigateur pour toutes les vues, et la page est envoyée seulement si elle à été modifiée.
                  Tu peux envoyer des headers pour dire quels paramètres peuvent « faire varier » la page.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Django, à quoi dois-je m'attendre ?

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown