Не удается получить доступ к запросу во фляге Python - PullRequest
0 голосов
/ 24 апреля 2019

Я пытаюсь получить доступ к заголовкам запросов, когда пользователь посещает определенную страницу. Это функция 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 Ответ

1 голос
/ 24 апреля 2019

Сообщение:

local variable 'request' referenced before assignment

является хорошим предложением.Действительно, вы нигде в своем коде не определили запрос.

свойство request «внедряется» под колпак Flask, когда вы декорируете метод с помощью @app.route.

Следовательно:

Вы сможете правильно обращаться к запросу только из методов, украшенных @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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...