Skip to content Skip to sidebar Skip to footer

Browser Detection Python / Mod_python?

I want to keep some statistics about users and locations in a database. For instance, I would like to store 'Mozilla','Firefox','Safari','Chrome','IE', etc... as well as the versio

Solution 1:

HTTP_USER_AGENT contains this information, and will be passed in the environment variables your application uses. In mod_python, this is expressed as:

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

It's a basic CGI thing, but this is how mod_python gives it to you.

Solution 2:

The method suggested by Jed Smith works, but I was sure there was a simpler way.

The req.headers_in variable contains all the header info, and you can easily access the user agent using mod_python by calling:

req.headers_in[ 'User-Agent' ]

It is not necessary to call req.add_common_vars() when using this method.

Solution 3:

If you are using the Django-Framework you get the user agent like this

request.META['HTTP_USER_AGENT']

The very nice plugin httpagentparser extracts every detail and puts it a dictionary.

Installation works via pip

pip install httpagentparser

Hope this helps... I googled about 30 min until I found something useful :)

Ron

Post a Comment for "Browser Detection Python / Mod_python?"