Requests not able call multiple routes in same Flask application

flask, python, python-requests

Solution

Your code assumes that your app can handle multiple requests at once: the initial request, plus the request that is generated while the initial is being handled.

If you are running the development server like `app.run()`, it runs in a single thread by default; therefore, it can only handle one request at a time.

Use `app.run(threaded=True)` to enable multiple threads in the development server.

As of Flask 1.0 the development server is threaded by default.

Problem

I am not able to successfully use Python Requests to call a second route in the same application using Flask. I know that its best practice to call the function directly, but I need it to call using the URL using requests. For example: ``` 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) ```

Original source