Django中间件和视图装饰器,用于检测手机和小屏幕设备
项目描述
作者:Ken Cochrane
Fork自:http://minidetector.googlecode.com
Fork描述:我重新组织了代码,添加了缓存,并在这里那里做了一些调整。
描述:Django中间件和视图装饰器,用于检测手机和小屏幕设备
版本:0.1.7
最后更新:2013年11月17日
需求
-------------
Django 1.1或更高版本
如果您想缓存对象,则必须启用Django缓存
如何使用
-----------
使用django-mobi非常简单。只需将mobi包放置到您的项目路径中,然后执行以下操作之一
使用mobi.middleware.MobileDetectionMiddleware中间件
---------------------------------------------------
此中间件将扫描所有传入请求,以查看是否为移动设备。如果是,它将设置request.mobile属性为True。
要使用它,您只需在`settings.py`中的`MIDDLEWARE_CLASSES`元组中添加`mobi.middleware.MobileDetectionMiddleware`即可。
然后,在您的视图中,您可以检查request.mobile - 如果为True,则将其视为小屏幕设备。如果为False,则可能是桌面浏览器、蜘蛛或其他。
如果您想有一些项目不被中间件触发(例如iPad),则添加一个名为MOBI_USER_AGENT_IGNORE_LIST的设置,并将项目添加到列表中。
MOBI_USER_AGENT_IGNORE_LIST = ['ipad',]
如果您想区分平板设备与手机,请将 MOBI_DETECT_TABLET 设置为 True 并使用 request.tablet 属性。
{% if not request.mobile or request.tablet %}
<p>本节仅对桌面和平板设备启用</p>
{% endif %}
使用 mobi.middleware.MobileRedirectMiddleware 中间件
---------------------------------------------------
此中间件会扫描所有传入请求,以判断是否为移动设备,如果是,则将请求重定向到不同的 URL。如果您想强制所有移动流量访问您网站的移动版,这非常有用。
要使用它,您只需将 `mobi.middleware.MobileRedirectMiddleware` 添加到您的 `settings.py` 中的 `MIDDLEWARE_CLASSES` 元组,并将 MOBI_REDIRECT_URL 设置为 "http://example.mobi",其中 http://example.mobi 是您想重定向所有移动流量的网站。
不使用中间件
------------------------
如果您只有某些视图需要区分,您可以选择不对收到的每个请求进行搜索。您只需要像这样包装相关的视图
from mobi.decorators import detect_mobile
@detect_mobile
def my_mobile_view(request)
if request.mobile
# 对移动设备进行操作
Fork自:http://minidetector.googlecode.com
Fork描述:我重新组织了代码,添加了缓存,并在这里那里做了一些调整。
描述:Django中间件和视图装饰器,用于检测手机和小屏幕设备
版本:0.1.7
最后更新:2013年11月17日
需求
-------------
Django 1.1或更高版本
如果您想缓存对象,则必须启用Django缓存
如何使用
-----------
使用django-mobi非常简单。只需将mobi包放置到您的项目路径中,然后执行以下操作之一
使用mobi.middleware.MobileDetectionMiddleware中间件
---------------------------------------------------
此中间件将扫描所有传入请求,以查看是否为移动设备。如果是,它将设置request.mobile属性为True。
要使用它,您只需在`settings.py`中的`MIDDLEWARE_CLASSES`元组中添加`mobi.middleware.MobileDetectionMiddleware`即可。
然后,在您的视图中,您可以检查request.mobile - 如果为True,则将其视为小屏幕设备。如果为False,则可能是桌面浏览器、蜘蛛或其他。
如果您想有一些项目不被中间件触发(例如iPad),则添加一个名为MOBI_USER_AGENT_IGNORE_LIST的设置,并将项目添加到列表中。
MOBI_USER_AGENT_IGNORE_LIST = ['ipad',]
如果您想区分平板设备与手机,请将 MOBI_DETECT_TABLET 设置为 True 并使用 request.tablet 属性。
{% if not request.mobile or request.tablet %}
<p>本节仅对桌面和平板设备启用</p>
{% endif %}
使用 mobi.middleware.MobileRedirectMiddleware 中间件
---------------------------------------------------
此中间件会扫描所有传入请求,以判断是否为移动设备,如果是,则将请求重定向到不同的 URL。如果您想强制所有移动流量访问您网站的移动版,这非常有用。
要使用它,您只需将 `mobi.middleware.MobileRedirectMiddleware` 添加到您的 `settings.py` 中的 `MIDDLEWARE_CLASSES` 元组,并将 MOBI_REDIRECT_URL 设置为 "http://example.mobi",其中 http://example.mobi 是您想重定向所有移动流量的网站。
不使用中间件
------------------------
如果您只有某些视图需要区分,您可以选择不对收到的每个请求进行搜索。您只需要像这样包装相关的视图
from mobi.decorators import detect_mobile
@detect_mobile
def my_mobile_view(request)
if request.mobile
# 对移动设备进行操作