首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用Django和Python 3检测移动设备

使用Django和Python 3检测移动设备
EN

Stack Overflow用户
提问于 2017-02-16 11:58:28
回答 2查看 24.8K关注 0票数 24

在我的Django视图中,我正在努力寻找一种简单的方法来检测请求是否来自移动设备。

我正在尝试实现类似这样的东西:

代码语言:javascript
运行
AI代码解释
复制
#views.py

def myfunction(request):

    ...
    if request.mobile:
        is_mobile = True
    else:
        is_mobile = False

    context = {
        ... ,
        'is_mobile': is_mobile,
    }
    return render(request, 'mytemplate.html', context)

mytemplate.html

代码语言:javascript
运行
AI代码解释
复制
{% if is_mobile %}    
    show something
{% else %}
    show something else
{% endif %}

我检查过的任何地方(例如herehere),都推荐使用minidetector。我安装了不同的版本:pip install minidetectorpip install minidetector2,以及直接安装了几个github存储库,但它们都不能与Python3兼容。

所以我的问题是:有没有与Python3兼容的minidetector版本/分支?如果不是,还有其他选择吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-16 15:57:05

Django User Agents包兼容Python3。

按照上面提供的链接中的安装说明进行操作,然后您可以按如下方式使用它:

代码语言:javascript
运行
AI代码解释
复制
def my_view(request):

    # Let's assume that the visitor uses an iPhone...
    request.user_agent.is_mobile # returns True
    request.user_agent.is_tablet # returns False
    request.user_agent.is_touch_capable # returns True
    request.user_agent.is_pc # returns False
    request.user_agent.is_bot # returns False

    # Accessing user agent's browser attributes
    request.user_agent.browser  # returns Browser(family=u'Mobile Safari', version=(5, 1), version_string='5.1')
    request.user_agent.browser.family  # returns 'Mobile Safari'
    request.user_agent.browser.version  # returns (5, 1)
    request.user_agent.browser.version_string   # returns '5.1'

    # Operating System properties
    request.user_agent.os  # returns OperatingSystem(family=u'iOS', version=(5, 1), version_string='5.1')
    request.user_agent.os.family  # returns 'iOS'
    request.user_agent.os.version  # returns (5, 1)
    request.user_agent.os.version_string  # returns '5.1'

    # Device properties
    request.user_agent.device  # returns Device(family='iPhone')
    request.user_agent.device.family  # returns 'iPhone'

模板中的用法如下:

代码语言:javascript
运行
AI代码解释
复制
{% if request.user_agent.is_mobile %}
    Do stuff here...
{% endif %}

但是,请注意,中间件类在Django 1.10中发生了更改。因此,如果您使用的是Django 1.10 +,则必须按照此GitHub issue tracker page中的说明修改此包中的中间件类定义。

票数 37
EN

Stack Overflow用户

发布于 2017-02-16 17:33:29

我找到了另一种方法,从this answer开始。

通过在views.py中添加一个附加函数

代码语言:javascript
运行
AI代码解释
复制
import re

def mobile(request):
"""Return True if the request comes from a mobile device."""

    MOBILE_AGENT_RE=re.compile(r".*(iphone|mobile|androidtouch)",re.IGNORECASE)

    if MOBILE_AGENT_RE.match(request.META['HTTP_USER_AGENT']):
        return True
    else:
        return False


def myfunction(request):

    ...
    if mobile(request):
        is_mobile = True
    else:
        is_mobile = False

    context = {
        ... ,
        'is_mobile': is_mobile,
    }
    return render(request, 'mytemplate.html', context)
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42273319

复制
相关文章
使用MediaPipe在移动设备上进行实时3D对象检测
对象检测一直是计算机视觉中研究最广泛的问题之一。作为最基本和最基本的检测形式之一,并且其用途无与伦比,对象检测已在许多基于商业计算机视觉的应用中使用。
代码医生工作室
2020/05/09
2.4K0
使用MediaPipe在移动设备上进行实时3D对象检测
python3 and django使用
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'
py3study
2020/01/03
3820
YOLObile:面向移动设备的「实时目标检测」算法
分享一篇AAAI 2021录用论文:YOLObile: Real-Time Object Detection on Mobile Devices via Compression-Compilation Co-Design作者来自于美国东北大学、匹兹堡大学和William & Mary。
CV君
2021/03/26
1.3K0
基于Django1.11和Python3
a. 先在VotingSystem项目目录下新建一个templates文件夹,注意文件夹权限和属组
py3study
2020/01/03
4920
使用Python和YOLO检测车牌
计算机视觉无处不在-从面部识别,制造,农业到自动驾驶汽车。今天,我们将通过动手实践进入现代计算机视觉世界,学习如何使用YOLO算法检测车牌。
小白学视觉
2022/05/22
1.2K0
使用Python和YOLO检测车牌
Django API开发: 使用Python和Django构建web APIs
中文翻译版:Django API开发: 使用Python和Django构建web APIs
宇宙之一粟
2020/10/26
2.9K0
Github项目Mobile-Detect-检测移动设备的php类
作者:matrix 被围观: 2,063 次 发布时间:2015-01-14 分类:兼容并蓄 | 2 条评论 »
HHTjim 部落格
2022/09/26
3930
Github项目Mobile-Detect-检测移动设备的php类
Python全栈(十)Django框架之3.Django模板简单使用
在前面,视图函数返回的只是文本,而在实际应用中其实很少这样用,而是返回带有样式的HTML代码,这可以让浏览器渲染出非常漂亮美观的页面。 DTL即Django Template Language,是指Django自带的模板语言,是一种带有特殊语法的HTML文件,可以被Django编译,还可以传递参数、实现数据动态化。在编译完成后,生成一个普通的HTML文件,然后发送给客户端进行渲染显示。 Django同时也支持配置Jinja2等其他模板引擎,但是作为Django内置的模板语言,DTL可以和Django达到无缝衔接、不会产生不兼容的情况,前提是不采用前后端开发模式。
cutercorley
2020/08/31
6090
如何在移动设备上使用堡垒机
堡垒机目前已经成为通用的安全设备之一,很多公司运维人员登录服务器的时候都需要从堡垒机上进行认证授权,然后登录服务器进行操作。近年来随着平板设备的普及,很多时候技术人员有从移动设备上登录堡垒机的需求,本文就是以中远麒麟堡垒机为例,说明如何通过安卓或IOS设备访问堡垒机进行运维操作。
用户2169016
2022/02/04
2.2K0
如何在移动设备上使用堡垒机
使用Python移动和重命名Excel文件
本文将向你展示如何在Python中移动和重命名Excel文件。此方法不仅适用于Excel文件,也适用于任何其他格式的文件,包括.docx、.txt、.pptx,等等。
fanjy
2021/11/17
3.1K0
使用Python移动和重命名Excel文件
Django-3 模板使用
在之前的文章中我们了解到模板允许我们在多个地方重用代码段,非常适合动态HTML页面。使用模板将更复杂的HTML返回给浏览器。我们还将看到如何将变量作为上下文传递给模板。接下来开始:
XXXX-user
2019/07/23
9920
Django-3 模板使用
django-python3-mysql
使用python3和Django搭建自己的服务器的时候使用的是sqlite数据库,一切顺利.
py3study
2020/01/03
4950
Python3+django+nginx
1 环境介绍和准备 Python3+django+nginx+uwsgi使用场景部署
py3study
2020/01/03
5660
Python3+django+nginx
如何使用 TensorFlow mobile 将 PyTorch 和 Keras 模型部署到移动设备
截止到今年,已经有超过 20 亿活跃的安卓设备。安卓手机的迅速普及很大程度上是因为各式各样的智能 app,从地图到图片编辑器应有尽有。随着深度学习的出现,我们的手机 app 将变得更加智能。下一代由深度学习驱动的手机 app 将可以学习并为你定制功能。一个很显著的例子是「Microsoft Swiftkey」,这是一个键盘 app, 能通过学习你常用的单词和词组来帮助你快速打字。
AI研习社
2018/07/26
3.6K0
如何使用 TensorFlow mobile 将 PyTorch 和 Keras 模型部署到移动设备
Mobile Detect:移动设备(手机和平板)检测的 PHP 类库
Mobile Detect 是一个轻量级的开源移动设备(手机和平板)检测的 PHP Class,它使用 User-Agent 中的字符串,并结合 HTTP Header,来检测移动设备环境。这个设备检测的 PHP 类库最强大的地方是,它有一个非常完整的库,可以检测出所用的设备类型(包括操作类型,以及手机品牌等都能检测)和浏览器的详细信息。
Denis
2023/04/14
1.1K0
Mobile Detect:移动设备(手机和平板)检测的 PHP 类库
Django源码中的metaclass使用是如何兼容Python2和Python3的
之前看Django源码时没太注意metaclass是怎么做的2跟3的兼容,直到看见Django2.0dev版中只是用了Python3.x中metaclass的使用方式。
the5fire
2019/03/01
1K0
使用Python进行天气异常检测和预测
我们在解决问题之前需要明确问题的定义和评估判别标准。在天气异常检测和预测方面,我们需要定义什么是异常,并且需要评估天气判别天气预测模型的准确性和可靠性。
小白学大数据
2023/07/11
4090
python Django安装使用
windows 安装Django 前提: 本地以及安装好python 安装步骤: 运行--cmd.exe 进入到python 的安装目录下,进入到C:Python27\Scripts> pip install django==1.10.3 (为Django的版本号)。 执行完成,在Scripts文件夹下面有 django-admin.exe ,django-admin.py,django-admin.pyc,三个文件。 可使用 pip show django 命令查看安装的版本。 启动:python3 manage.py runserver 127.0.0.1:8001
py3study
2020/01/10
5100
如何使用TensorFlow mobile部署模型到移动设备
截止到今年,已经有超过 20 亿活跃的安卓设备。安卓手机的迅速普及很大程度上是因为各式各样的智能 app,从地图到图片编辑器应有尽有。随着深度学习的出现,我们的手机 app 将变得更加智能。下一代由深度学习驱动的手机 app 将可以学习并为你定制功能。一个很显著的例子是「Microsoft Swiftkey」,这是一个键盘 app, 能通过学习你常用的单词和词组来帮助你快速打字。
IT派
2018/08/10
1.1K0
如何使用TensorFlow mobile部署模型到移动设备
如何使用JavaScript来判断是否为移动设备?
  由于移动设备的显示屏幕相对于桌面显示器来说小很多,在桌面显示器上能够正常显示的内容,到了移动设备中就不正常了。为了实现移动端和桌面端的相互跳转,我们可以通过JavaScript来判断当前的设备是否是移动设备,然后执行相应的代码。
用户5997198
2019/08/12
4.9K0
如何使用JavaScript来判断是否为移动设备?

相似问题

使用JavaScript和Razor检测移动设备

10

使用PHP和jQuery检测移动设备

63

Django -在视图中检测移动设备

16

使用JavaScript检测移动设备

10

使用wordpress检测移动设备

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文