2012-03-26 15 views

回答

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

您還可以使用request.user_agent對象,包含基於用戶代理字符串創建以下屬性:

  • 平臺(Windows,Linux和MacOS的,等)
  • 瀏覽器(chrome,firefox,msie等)
  • 版本
  • 語言
  • 字符串(== request.headers.get('User-Agent')
19
flask.request.user_agent.string 
12

如果使用

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

你可能會得到: 的Mozilla/5.0(Windows NT的6.1; WOW64)爲AppleWebKit/537.36(KHTML,例如Gecko)Chrome瀏覽器/ Safari瀏覽器45.0.2454.101/537.36

如果使用

request.user_agent 

你可能會得到這樣的:

  • user_agent.platform:窗戶
  • user_agent.browser:鉻
  • 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
+0

爲什麼語言無?有一種簡單的方法來獲得語言嗎? – Faminator 2016-01-11 17:35:03

+0

@Faminator如果客戶的瀏覽器不設置語言字段,那麼服務器無法獲取它,所以它只顯示無。 – ffledgling 2016-02-18 12:26:15

1

UA通常不包含語言。如果你想獲得在瀏覽器中設置的語言,你可以使用

request.accept_languages 

它會給你語言列表。例如。

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

要訪問的第一個值,你可以使用

request.accept_languages[0][0] 

這將導致字符串

'en-US' 

關於「accept_language」頭的詳細信息:https://www.w3.org/International/questions/qa-lang-priorities

相關問題