How do I check if a User is using a mobile device in Django 1.9?

﹥>﹥吖頭↗ 提交于 2019-12-11 11:07:52

问题


I'm using Django 1.9 with Python 2.7 and I'm trying to get my app to recognize if the user is browsing with a mobile device. I've tried django_mobile but it seems outdated for django 1.9 because there aren't even template_loaders to install the app, am I wrong about this?


回答1:


or you can use django-user_agents app. really good one. you also get the context in your template - among others important for rendering some ads depending on device

in view

request.user_agent.is_mobile

or in template

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



回答2:


Try extracting the user agent string with

request.META['HTTP_USER_AGENT']

and then using this library to parse that string.

Example

from user_agents import parse

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



回答3:


The MobileESP library may help in this case. It is not Django-specific, but can be used with Django as a Python module. The API page details the detection capabilities, such as tiers (tablet / touchscreen smartphone) and specific platforms.




回答4:


Yes, you are little wrong. To install django_mobile with Django 1.9 you should update settings (I've described this in the following PR, not merged yet). It works fine for me.

Exactly, you should replace TEMPLATE_LOADERS with loaders and TEMPLATE_CONTEXT_PROCESSORS with context_processors in TEMPLATES dictionary. For more about template options, read the docs.



来源:https://stackoverflow.com/questions/37083195/how-do-i-check-if-a-user-is-using-a-mobile-device-in-django-1-9

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!