无法访问python flask中的请求

时间:2019-04-24 13:07:51

标签: python flask

当用户访问特定页面时,我正在尝试访问请求标头。根据{{​​3}},它是一项cron函数。通过检查标头X-Appengine-Cron,我应该能够确定请求是否来自服务帐户。我已经尝试过了,并且在整个应用程序中一直使用请求,没有问题,但是为此它返回错误:

local variable 'request' referenced before assignment

我尝试复制利用请求的其他功能,但是那里没有问题。我正在使用一个非常基本的测试来检查它是否正常工作:

from flask import (
    Blueprint, Flask, flash, g, redirect, render_template, request, url_for
)

@app.route('/cloud-datastore-export', methods = ['GET'])
def cloud_datastore_export():
  test = request.headers.get('X-Appengine-Cron')

我希望测试包含X-Appengine-Cron值。

1 个答案:

答案 0 :(得分:0)

消息:

  

local variable 'request' referenced before assignment

是一个很好的建议。确实,您没有在代码中的任何地方定义请求。

当您使用@app.route装饰方法时,Flask会在

request 属性中“注入”属性。

因此:

您将只能从用@app.route装饰的方法中正确访问请求,其中 app 是flask.Flask类的实例。

例如:

from flask import Flask

# (some code here)
app = Flask(__name__)

@app.route('/path/to/this/method')
def my_handler():
    headers = request.headers
    # (some more logic here)