作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的环境:
Python3.7
Flask==1.0.2
pytest==4.3.1
def test_busking(session, monkeypatch, report=Report()):
with app.test_request_context('/busking/zones'):
# call the before funcs
rv = app.preprocess_request()
if rv != None:
response = app.make_response(rv)
else:
# do the main dispatch
rv = app.dispatch_request()
response = app.make_response(rv)
# now do the after funcs
response = app.process_response(response)
assert flask.request
assert response
rv is None
时被调用.当 rv 是别的东西时,为什么不呢? rv is None
时也会调用 process_response()这是为什么? before_request_funcs
rv 是最后一个 before_request_function
的返回值...看起来 rv 与调度请求无关,但我知道它必须是什么...告诉我我错了什么。 最佳答案
我不是 Flask 专家,所以这个答案可能会遗漏一些要点,但我认为这足以帮助澄清您的情况:
before_request
函数返回的不是 None
,它被视为 View 的响应,因此不再进行处理,请参阅preprocess_request's doc process_response
调用after_request
方法,无论响应内容如何都会调用它 (AFAIK) rv
是第一个非None
从 before_request
收到的结果,不是最后一个,只要一个非 None
返回,处理停止。 preprocess_request
:调用before_request
函数顺序 None
的内容,停止调用其余的并跳转到(4)dispatch_request
:调用与路由规则相关的方法make_response
:准备Response
基于先前结果的对象(此处为 rv
)process_response
:调用after_request
Response
的函数对象 关于python-3.x - flask 测试 : preprocess_request(), dispatch_request(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56815553/
我的环境: Python3.7 Flask==1.0.2 pytest==4.3.1 我正在寻找一种在 pytest 函数中检索请求对象和响应对象的方法。然后我遇到了这个单元测试片段。 http://
我正在使用 Net::SFTP 将文件上传到服务器。这是代码: uri = URI.parse('sftp://host.org') io = StringIO.new(csv_string) tim
我是一名优秀的程序员,十分优秀!