也许这个问题与此无关。让我知道。
我试图了解一般情况下test_client(我的情况是main
Flask
)究竟是如何运作的
我追溯到test_client
description(特别是针对我的情况)
werkzeug.test.Client
但是引擎盖下会发生什么?该应用程序没有真正运行端口?
答案 0 :(得分:2)
Flask实现了WSGI应用程序协议。它需要处理一个请求的是一个描述请求数据的m
dict,它返回一个environ
对象。它并不关心在哪里环境来自哪里或响应在哪里,这是由WSGI服务器协议处理的。像Gunicorn这样的Werkzeug开发服务器和生产服务器处理这一部分。
Werkzeug测试客户端模拟服务器:它不是响应HTTP请求而生成Response
,而是响应函数调用生成一个environ
。当您调用client.get
时,客户端根据您传递的参数构建WSGI environ
dict,调用Flask WSGI应用程序,然后将响应返回给您。