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

我试图用Flask访问用户代理,但是我无法find它的文档,或者它不告诉我。

from flask import request request.headers.get('User-Agent') 

您也可以使用request.user_agent对象,该对象包含基于useragentstring创build的以下属性:

  • 平台(windows,linux,macos等)
  • 浏览器(chrome,firefox,msie等)
  • 语言
  • string( == request.headers.get('User-Agent')
 flask.request.user_agent.string 

如果你使用

 request.headers.get('User-Agent') 

您可能会得到:Mozilla / 5.0(Windows NT 6.1; WOW64)AppleWebKit / 537.36(KHTML,如Gecko)Chrome / 45.0.2454.101 Safari / 537.36

如果你使用

 request.user_agent 

你可能会得到这样的结果:

  • user_agent.platform:windows
  • user_agent.browser:chrome
  • user_agent.version:45.0.2454.101
  • user_agent.language:无
  • user_agent.string:Mozilla / 5.0(Windows NT 6.1; WOW64)AppleWebKit / 537.36(KHTML,如Gecko)Chrome / 45.0.2454.101 Safari / 537.36

UA通常不包含语言。 如果你想获得在浏览器中设置的语言,你可以使用

 request.accept_languages 

它会给你的语言列表。 例如

 LanguageAccept([('en-US', 1), ('en', 0.5)]) 

要访问第一个值,可以使用

 request.accept_languages[0][0] 

这将导致string

 'en-US' 

有关“accept_language”标头的详细信息: https ://www.w3.org/International/questions/qa-lang-priorities