如何解决python falcon falcon.before 与 async
def check_authenticated(request,response,resource,params):
print(request.headers)
request.context.test = 'test'
@falcon.before(check_authenticated)
class testing(object):
async def on_get(self,request,response):
print(request.headers)
print('made it here')
但我一直面临错误:TypeError: object nonetype can't be used in 'await' expression
解决方法
根据您的 async def
响应者的异步签名 (on_get
),我假设您使用的是框架的 ASGI 风格。
在这种情况下,不仅您的响应者,而且中间件方法、钩子、接收器、错误处理函数都必须是可等待的协程函数。
比较和对比此 "more complex example" 的 WSGI 和 ASGI 版本,其中在框架的同步和异步风格中应用了钩子和 falcon.before
。
TL;DR 您需要将钩子更改为 async def check_authenticated(...)
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。