2009-11-06 8 views
4

Je souhaite conserver des statistiques sur les utilisateurs et les emplacements dans une base de données. Par exemple, je voudrais stocker "Mozilla", "Firefox", "Safari", "Chrome", "IE", etc ... ainsi que les versions, et éventuellement le système d'exploitation. Ce que j'essaye de localiser de Python est cette chaîne;Détection du navigateur Python/mod_python?

Mozilla/5.0 (X11; U; Linux i686; fr; rv: 1.9.0.14) Gecko/2009090216 Ubuntu/9,04 (jaunty) Firefox/3.0.14

est-il un moyen efficace d'utiliser Python ou mod_python pour détecter l'agent utilisateur http/navigateur?

Répondre

3

HTTP_USER_AGENT contient ces informations et sera transmise dans les variables d'environnement utilisées par votre application En mod_python, cela se traduit par:

def my_request_handler(req): 
    req.add_common_vars() 
    agent = req.subprocess_env.get("HTTP_USER_AGENT") 

    # `agent` now contains the full user agent of the browser, or None 

Il est une chose de CGI de base, mais comment mod_python vous donne.

2

La méthode proposée par Jed Smith fonctionne, mais j'étais sûr qu'il y avait un moyen plus simple.

La variable req.headers_in contient toutes les informations d'en-tête, et vous pouvez facilement accéder à l'agent utilisateur à l'aide mod_python en appelant:

req.headers_in[ 'User-Agent' ] 

Il ne faut pas appeler req.add_common_vars() lors de l'utilisation de cette méthode.

2

Si vous utilisez le Django -Cadre vous obtenez l'agent utilisateur comme celui-ci

request.META['HTTP_USER_AGENT'] 

Le plugin très agréable httpagentparser extraits chaque détail et il met un dictionnaire.

installation fonctionne via pip

pip install httpagentparser 

Hope this helps ... Je googlé environ 30 min jusqu'à ce que je trouve quelque chose d'utile :)

Ron

Questions connexes