1. Martin Thorsen Ranang
  2. tgext.mobilemiddleware


tgext.mobilemiddleware / README.rst

About Mobile Middleware

Mobile Middleware is a middleware for WSGI applications.

Thought to be used on Turbogears 2 applications it detects mobile browser and provides a way to detect and react to them. Detection expression can be customized and action can change from plain detection to exposing a specific custom template for mobile requests

You will be able to see if your request is coming from a mobile browser with:

from tg import request


tgext.mobilemiddleware can be installed both from pypi or from bitbucket:

easy_install tgext.mobilemiddleware

should just work for most of the users

Enabling Mobile Agents Detection

In your application config/middleware.py import MobileMiddleware:

from tgext.mobilemiddleware import MobileMiddleware

Change your make_app method:

app = make_base_app(global_conf, full_stack=True, **app_conf)
return MobileMiddleware(app, app_conf)

Exposing Mobile Templates

tgext.mobilemiddleware implements a @expose_mobile decorator that works like @expose TurboGears2 decorator which can be used to specify which template to expose for mobie requests.

This will work by registering a custom template renderer with 'mobile' custom format. @expose_mobile supports the same template naming convention that @expose uses and can accept any rendering engine that has been registered in turbogears by specifing it as engine:module.template_name


def index(self, *args, **kw):
    return dict()

Customizing User Agents Detection

MobileMiddleware by default checks user agent with a regular expression that can be customized by changing [app:main] section of your configuration file by adding something like:

mobile.agents = android|fennec|iemobile|iphone|ipod|ipad