关于python:如何在Flask中获取http标头?

How to get http headers in flask?

我是python的新手,使用Python Flask并生成REST API服务。

我想检查发送给客户端的授权标头。

但是我找不到在flask中获取HTTP标头的方法。

感谢获得HTTP标头授权的任何帮助。


1
2
from flask import request
request.headers.get('your-header-name')

request.headers的行为类似于字典,因此您也可以像使用任何字典一样获取标头:

1
request.headers['your-header-name']


请注意,如果标头不存在,则方法之间的区别是

1
request.headers.get('your-header-name')

将返回None或没有异常,因此您可以像这样使用它

1
2
if request.headers.get('your-header-name'):
    ....

但是以下内容将引发错误

1
2
if request.headers['your-header-name'] # KeyError: 'your-header-name'
    ....

你可以通过

1
2
3
if 'your-header-name' in request.headers:
   customHeader = request.headers['your-header-name']
   ....


如果有人试图获取所有已传递的标头,则只需使用:

1
dict(request.headers)

它为您提供了dict中的所有标头,您实际上可以从中执行任何想要的操作。 在我的用例中,由于python API是代理,因此我不得不将所有标头转发到另一个API