Turbogears 2的移动中间件工具,用于检测移动浏览器
项目描述
关于Mobile Middleware
Mobile Middleware是WSGI应用的中间件。
原本打算用于Turbogears 2应用,它可以检测移动浏览器,并提供了一种检测和响应用户的方法。检测表达式可以自定义,操作可以从简单的检测更改为为移动请求公开特定的自定义模板
您可以使用以下方法查看您的请求是否来自移动浏览器
from tg import request request.is_mobile
安装
tgext.mobilemiddleware可以从pypi或从bitbucket安装
easy_install tgext.mobilemiddleware
应该适用于大多数用户
启用移动代理检测
在您的应用中 config/middleware.py 导入 MobileMiddleware
from tgext.mobilemiddleware import MobileMiddleware
修改您的 make_app 方法
app = make_base_app(global_conf, full_stack=True, **app_conf) return MobileMiddleware(app, app_conf)
公开移动模板
tgext.mobilemiddleware 实现了一个 @expose_mobile 装饰器,它类似于 @expose TurboGears2装饰器,可以用于指定为移动请求公开哪个模板。
这将通过在渲染视图之前切换模板来实现,如果检测到请求来自移动浏览器。 @expose_mobile 支持与 @expose 相同的模板命名约定,并且可以通过指定 engine:module.template_name 来接受在 TurboGears 中注册的任何渲染引擎。
示例
@expose('app.templates.index') @expose_mobile('app.templates.mobile.index') def index(self, *args, **kw): return dict()
自定义用户代理检测
如果您想快速自定义用于检测移动浏览器的正则表达式,可以在您的应用程序配置文件中定义 mobile.agents 配置变量,并将其设置为要使用的正则表达式。
对于更复杂的自定义,您可以创建自己的 DetectMobileBrowser 子类或可调用对象,并将其作为参数传递给 MobileMiddleware,例如:
return MobileMiddleware(app, app_conf, mobile_browser_detector=YourClass)
DetectMobileBrowser 的行为可以通过任何子类通过重写 DetectMobileBrowser.perform_detection 方法来改变。如果用户已定义了自定义正则表达式,则它将在 perform_detection 方法内部作为 self.custom_mobile_re 可用。
项目详情
tgext.mobilemiddleware-0.4.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 6f52aee1ef3ebadfba41c295735768231c150effbc89c80d7c33aa1bfdca7fc0 |
|
MD5 | d2d1e35eac5fd418d9860b76ab85fb50 |
|
BLAKE2b-256 | a622b385657211db8b885b5bf8b8f778a627598c08304b2caf85f36d36257379 |