Apr 102010
 

Et non, vous ne rêvez pas, on est même pas le 15 avril et déjà, déjà, le billet de l’app django du mois est là. Mais bon, les rencontres django ayant lieu dans maintenant 14 jours et n’ayant pas encore commencer à préparer ma conf, même pas le premier mot (enfin si, bonjour), ce qui fait que je suis ‘dans la banade’, comme l’a fait si justement remarquer il y a peu @daks_

Donc, je préfère me ‘débarrasser’ tout de suite de l’app du mois, comme ça, ça sera au moins une chose de faite.

Ce mois-ci, je vais donc vous présenter django-request, une app pour faire des stats sur la fréquentation de votre django. Oui je sais il y a google analytics pour ça. Mais bon, on sait jamais, ça peut être utile quand même.

1- Où on le trouve, comment on l’installe, tout ça quoi (et la doc) ?

On le trouve à deux endroits :

A noter que quasiment toute la doc se trouve être sur la partie dédiée à django-request sur le site de son auteur.

Pour l’installation, facile, un git clone, un téléchargement de source ou alors pip et easy_install.

Quand à la doc, elle est vraiment très fournie et complète, permettant d’installer, de configurer, d’utiliser, la totale quoi.

2- A quoi ca sert ?

Ben à faire des stats, je l’ai déjà dit. Qui ne seront visibles que dans la partie admin.

On peut avoir de jolis graphiques concernant :

  • les visiteurs uniques
  • les visites basées sur des referrer différents
  • les requêtes reçues par le serveur
  • les requêtes venant des moteur de recherches
  • les requêtes provenant du javascript
  • les requêtes en SSL
  • les requêtes faites par un utilisateur
  • le nombre d’erreur 404
  • le nombre d’erreur, toutes erreurs comprises
  • le nombre d’utilisateur enregistré sur le site qui ont fait des requêtes

Par défaut les calculs seront fait pour les visiteurs uniques, les visites en fonctions des referrers et le nombre global de requêtes.

On obtient ensuite un joli petit graphique qui nous donne tout plein d’infos. Et plein de petits tableaux pour en avoir encore plus.

Et on peut même avoir, des petits templates tags pour voir les users actifs sur le site

3- Comment ça marche ?

Il suffit d’ajouter ‘request’ dans ses installed_apps et d’ajouter le middleware qui va bien. (Attention suivant les middlewares déjà installés, la position du middleware de django-request, dans le tuple des middleware est importantt, mais c’est bien expliqué dans la doc).

Ensuite, tout ce passe dans l’interface d’admin

4- Tips de chez Jmad.

Quand j’ai installé le tout avec easy_install, j’ai oublié de rajouter les chemins pour avoir les templates admins de l’app. Résultat je n’avais rien dans l’admin. Faites y attention ou alors installez request directement dans votre projet django, comme une de vos apps.

Le model Request présente un champ language qui est modélisé en bd par un varchar de 25. Avec mes tests, cette longueur était bien trop petite pour mon firefox. Du coup boum une erreur BD a base de ‘machin qui a été truncated’. J’ai passé la taille du champ à 200 pour être tranquille.

Les différents fichiers js qui sont utilisés sont bien entendu fournis. Pourtant par défaut, les templates vont utilisés ceux hostés ailleurs (sur le site web de l’auteur par exemple). N’oubliez pas de changer cette option si cela vous dérange.

C’est expliqué dans la doc, mais je le redis ici. Une fois que tout est bien configuré, pour aller voir ces stats, vous allez dans l’admin, vous cliquez sur la ligne Request de l’app Request. Là vous avez la liste de toutes les requêtes. (pas très utile là comme ça, vous me direz). Levez les yeux, en haut à droie, à coté du bouton Add Request, vous avez un bouton Overview. Et voilà, cliquez, vous avez vos stats.

  6 Responses to “Django-request , ne partez plus en quest de vos stats”

  1. […] This post was mentioned on Twitter by Jean-Michel ARMAND. Jean-Michel ARMAND said: [BLOG] le billet de la #django app du mois : django-request : http://2tu.us/1ye8 #djangofr […]

  2. Mais elle m’a l’air très bien cette appli dis donc. Merci J-Mad.

    • Salut, merci de me faire découvrir cette application. Cependant, j’ai visiblement le même problème que toi avec easy-install. Afin de corriger cette erreur, tu parles de “rajouter les chemins pour avoir les templates admins de l’app”, mais je ne vois pas comment faire. Pourrais-tu m’indiquer la marche à suivre s’il te plaît ?

      • du fait de certaines contraintes, j’ai fini par la déployer en l’installant comme une de mes apps, directement dans mon projet django. Donc je n’ai plus le problème.

        Toutefois si tu veux rester dans le mode easy_install, c’est assez facile, il faut que dans ton fichier settings.py, dans le tuple TEMPLATE_DIRS, tu rajoutes le chemin vers le repertoire de django-request qui contient les templates.

        tu auras donc un truc du style :
        TEMPLATE_DIRS = ( #plein de truc ….
        #path qui va bien, le mieux serait par exemple :
        “/usr/local/lib/python2.6/dist-packages/django_request-0.22-py2.6.egg/request/templates/”,
        )

        Une remarque concernant django-request. Lorsque l’on supprime les infos des requetes, les données des stats sont supprimées aussi. Elles ne sont en effet pas stocker ailleurs. C’est dommage. (je vais poser une request sur ce point tiens)

  3. Hello, I am the author of django-request. Very nice article, glad you like djagno-request, btw, I fixed the error with fields not being truncated. Try the latest revision from github which has these patches. If you find any other problems, or if you have any feature requests feel free to contact me and say.

    http://github.com/kylef/django-request/commit/be9eacf3dae0fd2380421a9974aff8eadfe2ec8b

Sorry, the comment form is closed at this time.