如何在Flask中捕获和读取传入HTTP请求的头信息?

5

我想要读取进入我的服务器的请求头,以跟踪其位置和其他属性。

例如: 如果有人点击了一个URL,我如何能够读取进入请求的头信息?


3
你读过多少《Flask快速入门》的内容?这是在Web服务器环境中最基本的事情之一。《API文档》也涵盖了如何获取请求信息。 - Martijn Pieters
我对Flask一无所知,但我在2分钟内得到了答案:Request class就是你要找的。除了易于访问的列表之外,您是否有任何特定的标题感兴趣? - Paweł Dyda
1个回答

11
你可以使用flask.request.headers。它是一个werkzeug.datastructures.EnvironHeaders对象,但你可以像使用普通字典一样使用它。
例如:
from flask import Flask, request

app = Flask(__name__)

@app.route('/')
def main():
    print(request.headers)
    print(request.headers['User-Agent'])

if __name__ == '__main__':
    app.run()

输出结果如下:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Host: 127.0.0.1:5000
Content-Type: 
Dnt: 1
Content-Length: 
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Encoding: gzip, deflate, sdch
Cache-Control: max-age=0
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36


Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接