【问题标题】:How do I check if a User is using a mobile device in Django 1.9?如何检查用户是否在 Django 1.9 中使用移动设备?
【发布时间】:2016-09-02 03:58:22
【问题描述】:

我正在将 Django 1.9 与 Python 2.7 结合使用,我试图让我的应用程序识别用户是否正在使用移动设备浏览。我已经尝试过 django_mobile 但对于 django 1.9 来说似乎已经过时了,因为甚至没有 template_loaders 来安装应用程序,我错了吗?

【问题讨论】:

    标签: python django mobile django-1.9


    【解决方案1】:

    尝试提取用户代理字符串

    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】:

      或者您可以使用django-user_agents 应用程序。真的很好。您还可以在模板中获得上下文 - 其中对于根据设备呈现某些广告很重要

      在视图中

      request.user_agent.is_mobile
      

      或在模板中

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

      【讨论】:

      • django-user_agents 应用程序拯救了我的一天。它非常易于使用。
      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 2022-10-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-02-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多