Question

Je ne suis pas en mesure d'utiliser avec succès Python Demandes pour appeler un deuxième itinéraire de la même application à l'aide de Flacon.Je sais que sa meilleure pratique pour appeler la fonction directement, mais j'en ai besoin pour appeler à l'aide de l'URL à l'aide de requêtes.Par exemple:

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)
Était-ce utile?

La solution

Votre code suppose que votre application peut gérer plusieurs demandes à la fois:la demande initiale, en plus de la demande qui est générée pendant la première est en cours de traitement.

Si vous exécutez le serveur de développement comme app.run(), il s'exécute dans un thread unique par défaut;par conséquent, il ne peut gérer qu'une seule demande à la fois.

Utilisation app.run(threaded=True) pour permettre à plusieurs threads dans le serveur de développement.


Comme de Flacon 1.0 le serveur de développement est enfilé par défaut.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top