Ich versuche, mit Flask auf den Benutzeragenten zuzugreifen, aber ich kann die Dokumentation entweder nicht finden oder sie sagt es mir nicht.
Ich versuche, mit Flask auf den Benutzeragenten zuzugreifen, aber ich kann die Dokumentation entweder nicht finden oder sie sagt es mir nicht.
Antworten:
from flask import request
request.headers.get('User-Agent')
Sie können auch das request.user_agent
Objekt verwenden, das die folgenden Attribute enthält, die basierend auf der Zeichenfolge useragent erstellt werden:
== request.headers.get('User-Agent')
)flask.request.user_agent.string
Wenn du benutzt
request.headers.get('User-Agent')
Möglicherweise erhalten Sie: Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, wie Gecko) Chrome / 45.0.2454.101 Safari / 537.36
Wenn du benutzt
request.user_agent
Sie können so bekommen:
UA enthält normalerweise keine Sprache. Wenn Sie die Sprache im Browser einstellen möchten, können Sie verwenden
request.accept_languages
Es gibt Ihnen eine Liste der Sprachen. Z.B
LanguageAccept([('en-US', 1), ('en', 0.5)])
Um auf den ersten Wert zuzugreifen, können Sie verwenden
request.accept_languages[0][0]
was zu einer Zeichenfolge führt
'en-US'
Detaillierte Informationen zum Header "accept_language": https://www.w3.org/International/questions/qa-lang-priorities
Die Frage bittet um viel mehr Informationen. Diese Bibliothek scheint in die Rechnung des Sammelns vieler Informationen aus dem Kolben zu passen und enthält Beispielaufrufe, um diese Informationen aus dem Anwendungskontext zu entfernen.
https://pythonhosted.org/Flask-Track-Usage/
Die Verwendung wird in diesem Format gespeichert:
[
{
'url': str,
'user_agent': {
'browser': str,
'language': str,
'platform': str,
'version': str,
},
'blueprint': str,
'view_args': dict or None
'status': int,
'remote_addr': str,
'xforwardedfor': str,
'authorization': bool
'ip_info': str or None,
'path': str,
'speed': float,
'date': datetime,
},
{
....
}
]
Hier ist einer der Orte in der Bibliothek, an denen die Daten gesammelt werden:
https://github.com/ashcrow/flask-track-usage/blob/master/src/flask_track_usage/ init .py um Zeile 158
data = {
'url': ctx.request.url,
'user_agent': ctx.request.user_agent,
'server_name': ctx.app.name,
'blueprint': ctx.request.blueprint,
'view_args': ctx.request.view_args,
'status': response.status_code,
'remote_addr': ctx.request.remote_addr,
'xforwardedfor': ctx.request.headers.get(
'X-Forwarded-For', None),
'authorization': bool(ctx.request.authorization),
'ip_info': None,
'path': ctx.request.path,
'speed': float(speed),
'date': int(time.mktime(current_time.timetuple())),
'content_length': response.content_length,
'request': "{} {} {}".format(
ctx.request.method,
ctx.request.url,
ctx.request.environ.get('SERVER_PROTOCOL')
),
'url_args': dict(
[(k, ctx.request.args[k]) for k in ctx.request.args]
),
'username': None,
'track_var': g.track_var
}