![](/img/trans.png)
[英]sanic( ) - AttributeError: 'Request' object has no attribute 'split'
[英]sanic-validation Python AttributeError: 'Request' object has no attribute 'raw_args'
我正在尝试在一个简单的 Sanic 网络服务器中使用请求验证 package sanic-validation
。
使用 sanic 20.3.0、sanic-validation 0.4.4 和 Python 3.8.3。
from sanic import Sanic
from sanic.response import json
from sanic_validation import validate_args
app = Sanic()
query_schema = {
'name': {'type': 'string', 'required': True}
}
@app.route('/query', methods=['GET'])
@validate_args(query_schema)
async def query(request):
print(request.args)
name = request.args['name'][0]
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
但是,向/query
端点发送 GET 请求会导致 Python 终端出现以下错误:
Traceback (most recent call last):
File "/Users/n/opt/anaconda3/envs/test/lib/python3.8/site-packages/sanic/app.py", line 971, in handle_request
response = handler(request, *args, **kwargs)
File "/Users/n/opt/anaconda3/envs/test/lib/python3.8/site-packages/sanic_validation/decorators.py", line 59, in wrapper
validation_passed = validator.validate(request.raw_args)
AttributeError: 'Request' object has no attribute 'raw_args'
为什么会出现此错误,我们该如何解决? 谢谢!
您似乎使用了旧版本的sanic-validation存储库。 正如您在异常中看到的:
第 59 行,在包装器中 AttributeError: 'Request' object has no attribute 'raw_args'
基本上,错误说它不熟悉请求 object 中的raw_args属性。我检查了sanic-validation存储库中装饰器的代码,似乎他们将其更改为query_args属性(也在第 59 行)。
所以,也许你应该重新安装 package 或者你可以从 GitHub 复制代码并在本地发布。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.