首页 > 解决方案 > 无法访问python烧瓶中的请求

问题描述

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

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 值。

标签: pythonflask

解决方案


消息:

local variable 'request' referenced before assignment

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

你用@app.route.

因此:

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

例如:

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)

推荐阅读