我试图通过Flask访问用户代理,但我要么找不到它的文档,要么它没有告诉我
来自烧瓶导入请求的
request.headers.get('User-Agent')
您还可以使用request.user\u agent
对象,该对象包含基于useragent字符串创建的以下属性:
- 平台(windows、linux、macos等)
- 浏览器(chrome、firefox、msie等)
- 版本
- 语言
- 字符串(
==request.headers.get('User-Agent')
)
注:自werkzeug 2.0起,request.user\u agent
的解析数据已被弃用;如果您想继续获取详细信息,您需要使用自定义的UserAgent
实现,并在自定义Request
子类上将其设置为user\u agent\u class
,该子类在Flask
实例(或子类)上设置为Request\u class
下面是一个使用ua解析器的示例实现:
从ua\u解析器导入用户\u代理\u解析器
从werkzeug.user\u代理导入UserAgent
从werkzeug.utils导入缓存的\u属性
类ParsedUserAgent(用户代理):
@缓存的不动产
def_详细信息(自我):
返回user\u agent\u parser.Parse(self.string)
@财产
def平台(自身):
返回自我。_详细信息['os']['family']
@财产
def浏览器(自身):
返回self.\u详细信息['user\u agent']['family']
@财产
def版本(自):
返回“.”。加入(
部分
用于输入('major'、'minor'、'patch')
如果(part:=self.\u details['user\u agent'][key])不是无
)