Запросы не могут вызывать несколько маршрутов в той же колбе приложения

StackOverflow https://stackoverflow.com//questions/24023635

  •  21-12-2019
  •  | 
  •  

Вопрос

Я не могу успешно использовать запросы Python, чтобы вызвать второй маршрут в том же приложении с использованием колбы.Я знаю, что его лучшая практика, чтобы вызвать функцию напрямую, но мне нужно, чтобы позвонить, используя URL-адрес, используя запросы.Например:

from flask import Flask
import requests
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"  # This works

@app.route("/myrequest")
def myrequest():
    #r = requests.get('http://www.stackoverflow.com', timeout=5).text  # This works, but is external
    #r = hello()  # This works, but need requests to work
    r = requests.get('http://127.0.0.1:5000/', timeout=5).text  # This does NOT work - requests.exceptions.Timeout
    return r

if __name__ == "__main__":
    app.run(debug=True, port=5000)
.

Это было полезно?

Решение

Ваш код предполагает, что ваше приложение может обрабатывать несколько запросов одновременно: начальный запрос плюс запрос, который генерируется, когда обрабатывается начальный.

Если вы используете сервер разработки, как app.run(), он работает в одном потоке по умолчанию;Следовательно, он может обрабатывать только один запрос одновременно.

Используйте app.run(threaded=True), чтобы включить несколько потоков на сервере разработки.


в виде колбы 1.0 сервер разработки резьба по умолчанию.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top