当前位置: 首页 > 面试题库 >

请求无法在同一Flask应用程序中调用多个路由

张卓
2023-03-14
问题内容

我无法使用Flask在同一应用程序中成功使用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)在开发服务器中启用多个线程。

从Flask 1.0开始,开发服务器默认为线程化的。



 类似资料:
  • 问题内容: 有没有一种方法可以将Flask请求对象注入到其他Flask应用中。这就是我想要做的: 我正在尝试使用Google Cloud Functions,这是由云运行时调用的函数。它接收一个作为参数,然后我要通过自己的一组路由进行处理。 我尝试了以下操作,但不起作用: 对于所有请求,这将返回404错误。 编辑: 实现的简单方法如下: 这本质上要求我自己编写路由匹配逻辑。我想知道是否有一种避免这

  • 我试图以一种干净的方式构建应用程序的体系结构。我想我可以在Netty中做到这一点,因为它是一个著名的java网络框架选项。 我有连接到Netty服务器的设备(通过GPRS的TCP)。假设它们都是永久连接的(保持存活),有几种情况我需要用这个架构来描述: 情况1:设备可以向Netty发送消息,并且Netty响应该消息 情况2:设备可以向Netty发送消息,并且Netty对该消息做出响应,但是Nett

  • 问题内容: 我的Flask应用程序必须进行大量计算才能获取特定页面。在Flask执行该功能时,其他用户无法访问该网站,因为Flask忙于进行大量计算。 有什么方法可以使我的Flask应用程序接受来自多个用户的请求? 问题答案: 是的,将应用程序部署在其他WSGI服务器上,请参阅Flask部署选项文档。 Flask随附的服务器组件实际上仅用于开发应用程序时;即使可以将其配置为处理并发请求(从Flas

  • 我正在用Spring Boot开发Rest API,它部署在AWS Beanstalk上。潜在的是,这项服务每天会有成千上万的客户点击。因此,我想了解Spring Boot处理多个请求的能力。 从我在Spring-Boot中读到的内容:并发处理多个请求和如何在spring boot中拥有线程安全的控制器,似乎spring boot可以在控制器是线程安全的同时并发处理请求。 但是,如果同时向同一个e

  • 这可能不是典型的设置,但由于更高的决策,我们最终在一个应用程序中有多个 kafka 集群,每个集群有多个主题,每个集群可能具有不同的序列化策略。Json/avro.avro可能与融合的架构注册表一起使用,或者使用单个对象编码。 好吧,我通过构建自己的抽象和注册中心,分析配置并手动创建大部分内容,以某种方式实现了它,但我觉得我需要在几个地方多次重复主题名称、模式注册url等内容,以便创建所有需要的b

  • 我在spring应用程序中使用jdbctemplate对db执行查询。 下面是用@Transactional注释的方法 我的问题是,如果1和2成功而3失败,那么1和2上的事务是否会回滚?我怎么测试这个?