如何检查用户是否在Django 1.9中使用移动设备?

时间:2016-05-07 00:22:20

标签: python django mobile django-1.9

我正在使用Django 1.9和Python 2.7,我试图让我的应用程序识别用户是否正在使用移动设备进行浏览。我尝试过django_mobile,但django 1.9似乎已经过时,因为安装应用程序甚至没有template_loaders,我对此有误吗?

4 个答案:

答案 0 :(得分:1)

或者您可以使用django-user_agents应用。非常好。您还可以在模板中获取上下文 - 其中包括根据设备呈现某些广告的重要性

在视图中

request.user_agent.is_mobile

或在模板中

{% if request.user_agent.is_mobile %}
    Do stuff here...
{% endif %}

答案 1 :(得分:0)

尝试使用

提取用户代理字符串
request.META['HTTP_USER_AGENT']

然后使用this library来解析该字符串。

示例

from user_agents import parse

ua_string = request.META['HTTP_USER_AGENT']
user_agent = parse(ua_string)
if user_agent.is_mobile:
   ...

答案 2 :(得分:0)

在这种情况下,MobileESP库可能会有所帮助。它不是Django特有的,但可以与Django一起用作Python模块。 API page详细介绍了检测功能,例如层(平板电脑/触摸屏智能手机)和特定平台。

答案 3 :(得分:0)

是的,你错了。要使用django_mobile安装Django 1.9,您应该更新设置(我已在following PR中对此进行了描述,但尚未合并)。它对我来说很好。

确切地说,您应该将TEMPLATE_LOADERS替换为loaders,将TEMPLATE_CONTEXT_PROCESSORS替换为context_processors字典中的TEMPLATES。有关模板选项的更多信息,请read the docs.