2012-03-26 18 views

Respuesta

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

También puede utilizar el objeto request.user_agent que contiene los siguientes atributos que se crean basándose en la cadena de agente de usuario:

  • plataforma (Windows, Linux, MacOS, etc.)
  • navegador (cromo, firefox, msie, etc.)
  • versión
  • idioma
  • cadena (== request.headers.get('User-Agent'))
19
flask.request.user_agent.string 
12

Si utiliza

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

se puede obtener: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/Safari 45.0.2454.101/537,36

Si utiliza

request.user_agent 

puede obtener de esta manera:

  • user_agent.platform: windows
  • user_agent.browser: cromo
  • user_agent.version: 45.0.2454.101
  • user_agent.language : Ninguna
  • user_agent.string: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/Safari 45.0.2454.101/537,36
+0

¿Por qué es el idioma ¿Hay alguna manera simple de obtener el idioma? – Faminator

+0

@Faminator si el cliente el navegador no establece el campo de idioma, entonces no hay forma de que el servidor lo obtenga, por lo que simplemente muestra Ninguno. – ffledgling

1

UA por lo general no contiene lenguaje. Si desea obtener el idioma configurado en el navegador, puede usar

request.accept_languages 

Le dará la lista de idiomas. P.ej.

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

Para acceder al primer valor, es posible utilizar

request.accept_languages[0][0] 

que se traducirá en cadena

'en-US' 

información detallada sobre 'accept_language" cabecera: https://www.w3.org/International/questions/qa-lang-priorities

Cuestiones relacionadas