2012-03-26 4 views

ответ

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

Вы также можете использовать request.user_agent объект, который содержит следующие атрибуты, которые создаются на основе UserAgent строки:

  • платформы (Windows, Linux, MacOS и т.д.)
  • браузер (хром, firefox, msie и т. Д.)
  • версия
  • язык
  • строка (== request.headers.get('User-Agent'))
12

Если вы используете

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: окна
  • 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

+0

@Faminator, если клиент браузер не устанавливает поле языка, тогда нет возможности для сервера получить его, поэтому он просто показывает None. – ffledgling

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

Смежные вопросы