如何使用Flask获取用户代理?

我试图通过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])不是无
)

发表评论