gpt4 book ai didi

python - 在 flask 路由功能中使用请求模块

转载 作者:太空宇宙 更新时间:2023-11-03 12:39:47 25 4
gpt4 key购买 nike

考虑以下最小工作 flask 应用程序:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
return "I am /"

@app.route("/api")
def api():
return "I am /api"

if __name__ == "__main__":
app.run()

这很好用。但是,当我尝试使用从 hello 路由到 api 路由的“请求”模块发出 GET 请求时 - 我在尝试访问时从未在浏览器中得到响应http://127.0.0.1:5000/

from flask import Flask
import requests

app = Flask(__name__)

@app.route("/")
def hello():
r = requests.get("http://127.0.0.1:5000/api")
return "I am /" # This never happens :(

@app.route("/api")
def api():
return "I am /api"

if __name__ == "__main__":
app.run()

所以我的问题是:为什么会发生这种情况,我该如何解决?

最佳答案

您正在使用 Flask 测试服务器运行您的 WSGI 应用程序,默认情况下它使用单个线程来处理请求。因此,当您的一个请求线程试图回调到同一台服务器时,它仍然忙于处理那个请求

您需要启用线程:

if __name__ == "__main__":
app.run(threaded=True)

或者使用更高级的WSGI服务器;见Deployment Options .

关于python - 在 flask 路由功能中使用请求模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22878689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com