当用户访问特定页面时,我正在尝试访问请求标头。根据{{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值。
答案 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)