Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.

Download
ActivePython
INSTALL>
pypm install tgext.mobilemiddleware

How to install tgext.mobilemiddleware

  1. Download and install ActivePython
  2. Buy and install the Business Edition license from account.activestate.com
  3. Open Command Prompt
  4. Type pypm install tgext.mobilemiddleware

tgext.mobilemiddleware contains builds that are only available via PyPM when you have a current ActivePython Business Edition subscription.

 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
0.3
0.3 Available View build log
0.1 Available View build log
Windows (64-bit)
0.3
0.3 Available View build log
0.1 Available View build log
Mac OS X (10.5+)
0.3
0.3 Available View build log
0.1 Available View build log
Linux (32-bit)
0.3
0.3 Available View build log
0.1 Available View build log
Linux (64-bit)
0.3
0.3 Available View build log
0.1 Available View build log
 
License
LGPL
Dependencies

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
request.is_mobile

Installing

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 mobile requests.

This will work by switching the template before rendering the view if the request is detected to be from a mobile browser. @expose_mobile supports the same template naming convention that @expose uses and can accept any rendering engine that has been registered in TurboGears by specifying it as engine:module.template_name

Examples:

@expose('app.templates.index')
@expose_mobile('app.templates.mobile.index')
def index(self, *args, **kw):
    return dict()

Customizing User Agents Detection

If you want to quickly customize the regular expression used to detect the mobile browser you can define mobile.agents configuration variable in your application config file and set it to the regular expression that you want to use.

For more complex customizations, you may create your own subclass of DetectMobileBrowser, or callable object and supply it as an argument to MobileMiddleware, like:

return MobileMiddleware(app, app_conf, mobile_browser_detector=YourClass)

DetectMobileBrowser behaviour can be changed by any subclass by overridding the DetectMobileBrowser.perform_detection method. If user has defined a custom regular expression it will be available inside the perform_detection method as self.custom_mobile_re

Subscribe to package updates

Download Stats

Last month:1

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.