Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Django 判断访问来源是PC端还是手机端

Django 判断访问来源是PC端还是手机端

作者头像
菲宇
发布于 2022-04-13 07:18:46
发布于 2022-04-13 07:18:46
1.4K00
代码可运行
举报
文章被收录于专栏:菲宇菲宇
运行总次数:0
代码可运行

pc_or_mobile.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 判断访问来源是pc端还是手机端
import re

def judge_pc_or_mobile(ua):
    """
    :param ua: 访问来源头信息中的User-Agent字段内容
    :return:
    """

    factor = ua
    is_mobile = False

    _long_matches = r'googlebot-mobile|android|avantgo|blackberry|blazer|elaine|hiptop|ip(hone|od)|kindle|midp|mmp' \
                    r'|mobile|o2|opera mini|palm( os)?|pda|plucker|pocket|psp|smartphone|symbian|treo|up\.(browser|link)' \
                    r'|vodafone|wap|windows ce; (iemobile|ppc)|xiino|maemo|fennec'
    _long_matches = re.compile(_long_matches, re.IGNORECASE)
    _short_matches = r'1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)' \
                     r'|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)' \
                     r'|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw' \
                     r'|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8' \
                     r'|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit' \
                     r'|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)' \
                     r'|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji' \
                     r'|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx' \
                     r'|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi' \
                     r'|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)' \
                     r'|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg' \
                     r'|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21' \
                     r'|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-' \
                     r'|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it' \
                     r'|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)' \
                     r'|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)' \
                     r'|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit' \
                     r'|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-'

    _short_matches = re.compile(_short_matches, re.IGNORECASE)

    if _long_matches.search(factor) != None:
        is_mobile = True
    user_agent = factor[0:4]
    if _short_matches.search(user_agent) != None:
        is_mobile = True

    return is_mobile

view.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def index(request):
    ua = request.META.get("HTTP_USER_AGENT")
    # 通过request.META.get拿到返回的user-agent,最后传递到pc_or_mobile.py中的ua
    # 调用pc_or_mobile.py的函数judge_pc_or_mobile开始判断
    # 将ua的值传到该函数
    # mobile = judge_pc_or_mobile(ua)
    if mobile == False:
        return HttpResponse('请用手机访问')
    else:
        return render(request,'index.html')
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/03/24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
北京百思可瑞教育:PHP 手机访问判断代码,从基础检测到实战优化
在移动优先的 Web 开发时代,根据访问设备类型提供差异化体验已成为标配需求。PHP 作为服务端脚本语言,可通过解析 HTTP 请求头信息实现手机访问的精准判断。本文将系统讲解设备检测的原理与实现,提供从基础判断到场景化应用的完整解决方案。
用户1162104
2025/08/08
560
北京百思可瑞教育:PHP 手机访问判断代码,从基础检测到实战优化
Nginx根据Pc端和手机端访问不同页面
参考(http://blog.51cto.com/yanconggod/2047463)
石臻臻的杂货铺[同名公众号]
2021/07/14
1.2K0
Nginx结构全解析(86)
假设: PC站地址:http://example.com PC站文章地址:http://example.com/news/article.html
陈不成i
2021/05/15
4100
树莓派随身工具箱:中间人劫持获取控制权
上文讲解了树莓派随身工具箱的环境搭建,这段时间又对其进行了一些优化,主要是从便携美观上面改进。同时,在实际使用中发现了一些问题,并做了小小的改动。
FB客服
2018/07/30
1.5K0
树莓派随身工具箱:中间人劫持获取控制权
Web基础配置篇(五): Nginx的配置及代理转发
说到web服务器,你可以疑惑,前面说的tomcat不也是web服务器么,为啥要用nginx?
品茗IT
2019/09/12
1.9K0
判断手机 UA
现在的网页都会优先考虑兼容手机端,但难免有些样式或者有些排版不能完美兼容,或者有些页面只需要在手机端显示,这时候就需要对访问设备的 UA 进行判断,再跳转或者调用不同的模板和 CSS。
eallion
2022/12/16
1.4K0
Nginx 适配PC和手机端页面
需求总是不断在变。 有时候我们需要针对不同的访问方式指定不同的页面或者URL。 如仅是几个静态页面进行切换,那么可以用js进行判断跳转,如:
爱技术的小黄鸭
2023/06/15
7630
HDUOJ----(4706)Children's Day
Children's Day Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 248    Accepted Submission(s): 140 Problem Description Today is Children's Day. Some children ask you to output a big letter 'N'. 'N' i
Gxjun
2018/03/21
7320
js判断手机端和pc端
navigator对象有一个属性为userAgent,这是一个只读的字符串,声明了浏览器用于HTTP请求的用户代理头的值。所以我们可以通过判断navigator.userAgent里面是否包含某些值来判断。如下为userAgent的打印值。
用户1349575
2022/01/26
9.1K0
WordPress程序如何判断手机端和pc端?
通过程序来识别访问网页的设备是PC或者移动以便于我们自适应的显示不用的样式,但是一般php有判断的方法,js也有,css也可以判断,今天就分享一个WordPress程序自带的内置函数:wp_is_mobile(),大概的意思就是判断用户是否采用移动设备访问网站,返回的结果是一个布尔函数,返回值为true或false。
wordpress建站吧
2019/10/15
2.8K0
》》初识移动端–rem
转载于:https://www.cnblogs.com/1007573044qqcom/p/7988336.html
全栈程序员站长
2022/09/15
9660
php网站判断用户是否是手机访问的方法
有些时候,我们需要判断用户是否用手机访问,如果是手机的话,就跳转到指定的手机友好页面。这里就介绍一下,如何判断用户是否用手机访问。
全栈程序员站长
2022/07/07
2.6K0
Nginx区分PC或手机访问不同网站
近几年来,随着手机和pad的普及,越来越多的用户选择使用移动客户端访问网站,而为了获取更好的用户体验,就需要针对不同的设备显示出最合适的匹配,这样就是近年来流行的“响应式web设计”。 响应式web设计是一种纯前端技术js、css等实现的针对不同设备访问同一网址看到不同的布局,是页面内容更适合当前设备阅读。但这个不是本文的重点,重点还是放在nginx如何实现上来。 本文要讲的的是如何使用nginx区分pc和手机访问不同的网站,是物理上完全隔离的两套网站(一套移动端、一套pc端),这
小小科
2018/05/03
10.2K0
PHP判断是否为手机移动终端的函数代码
PHP判断是否是移动设备的函数 比单一的UA判断要好的多! 可以直接拿来用用! function is_mobile_request(){ $_SERVER['ALL_
用户1456630
2018/05/25
1.6K0
【JS 逆向百例】房天下登录接口参数逆向
本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!
K哥爬虫
2021/08/12
1.3K0
【JS 逆向百例】房天下登录接口参数逆向
vue + echarts 省份地图 以及打包后地图加载不出来(比较详细)「建议收藏」
3.methods (直接复制就好了,里面的标注位置可以自己修改,或者增加) 上面的标注我是根据这个改的 这是标注参照
全栈程序员站长
2022/11/04
2.7K0
一步步教你用 WebVR 实现虚拟现实游戏[每日前端夜话0x64]
虚拟现实(VR)是一种依赖计算机生成环境的体验,其应用范围广泛:美国利用虚拟现实进行冬季奥运会的运动训练;外科医生正在试验用虚拟进行医学培训;把虚拟现实用于游戏是最常见的一种应用。
疯狂的技术宅
2019/05/15
1.9K0
如何通过js将一base64编码的图片显示在html中
今天遇到了一个小问题,如何通过js将一base64编码的图片显示在html中?写了一个小的demo.
王小婷
2025/05/18
4850
如何通过js将一base64编码的图片显示在html中
php中如何判断用户是移动端还是pc端
💬个人网站:【芒果个人日志】​​​​​​ 💬原文地址:php中如何判断用户是PC端还是移动端 - 芒果个人日志 (wyz-math.cn) 💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较深入的研究。 💅文章概要:在移动端快速发展的今天,手机的日
THUNDER王
2023/02/23
1.8K0
php中如何判断用户是移动端还是pc端
大学生在线四史脚本
使用方法 运行后直接输入token或uid即可,程序会自动识别。 ⚠️ ️注意: ️输入token为Bearer后面那一串英文,一定要复制完全! 有Python环境 将题库.csv与main.py放于同一目录下,直接运行main.py文件即可.
全栈程序员站长
2022/07/02
5640
相关推荐
北京百思可瑞教育:PHP 手机访问判断代码,从基础检测到实战优化
更多 >
交个朋友
加入前端学习入门群
前端基础系统教学 经验分享避坑指南
加入腾讯云技术交流站
前端技术前沿探索 云开发实战案例分享
加入云开发企业交流群
企业云开发实战交流 探讨技术架构优化
换一批
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档