Почему я получаю это? «NameError: имя« Ответ »не определено» - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь получить данные с другого моего сервера. Другой сервер - это просто файл html с надписью «Hello World». Я могу без проблем попасть на свою домашнюю страницу, но когда я go на /farmdata, я получаю эту ошибку:

NameError: name «Ответ» не определен »

from flask import Flask, render_template
import requests


app = Flask(__name__)

@app.route('/') 
def index():
    return render_template('index.html')

@app.route('/farmdata')
def farmdata():
    r = requests.get('http://74.114.75.91:8080')
    r.url
    r.encoding
    return Response(
        r.text,
        status=r.status_code,
        content_type=r.headers['content-type'],
    )

if __name__== '__main__':
    app.run(debug=True, port=80, host='0.0.0.0')

Изменить - для всех, у кого возникла проблема, это было решение.

from flask import Flask, render_template, Response

Ответы [ 2 ]

1 голос
/ 28 мая 2020

Вы никогда не определяли Response. Если вы хотите использовать flask.Response, вам нужно либо import flask, а затем получить к нему доступ через flask.Response, либо from flask import Response, а затем просто использовать Response.

В вашем коде вы импортируете Flask из модуля flask, откуда вы получаете Flask. Если вы удалите строку from flask import Flask, вы получите сообщение NameError с жалобой на то, что Flask также не определен.

В Python имя определяется, если:

  • вы определили его с помощью присваивания переменной [или с помощью оператора def или class, что практически то же самое] (например, app в вашем примере)
  • вы импортировали его из другой модуль явно (например, Flask)
  • он определяется при запуске (например, list)
0 голосов
/ 28 мая 2020

Не слишком ли много «,» перед закрытием квадратных скобок в ответе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...