flask-restful return 可以响应对象吗?
Can flask-restful return Response object?
在使用 Flask-Restful 实现 REST API 时,我想 return Flask 的 Response 对象,因为它灵活且使用方便。例如:
return Response(
response=jsonify({
"data": {
"import_id": import_id
}
}),
status=201,
mimetype="application/json"
)
但看起来 flask-restless 不支持这样的东西:
2019-08-05 08:52:30,077 werkzeug INFO 172.21.0.1 - - [05/Aug/2019 08:52:30] "POST /imports HTTP/1.1" 500 -
2019-08-05 08:52:30,078 werkzeug ERROR Error on request:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/werkzeug/serving.py", line 303, in run_wsgi
execute(self.server.app)
File "/usr/local/lib/python3.7/site-packages/werkzeug/serving.py", line 293, in execute
for data in application_iter:
File "/usr/local/lib/python3.7/site-packages/werkzeug/wsgi.py", line 507, in __next__
return self._next()
File "/usr/local/lib/python3.7/site-packages/werkzeug/wrappers/base_response.py", line 45, in _iter_encoded
for item in iterable:
TypeError: 'Response' object is not iterable
是否有任何解决方法来使用 Response?如果没有,我如何 return 一个带有 flask-restfull 的 mimetype?
jsonify()
function returns a flask.Response()
object, while json.dumps(obj)
将 obj
序列化为 JSON 格式的字符串。
....
from Flask import json, Response
....
return Response(
response=json.dumps({
"data": {
"import_id": import_id
}
}),
status=201,
mimetype="application/json"
)
在使用 Flask-Restful 实现 REST API 时,我想 return Flask 的 Response 对象,因为它灵活且使用方便。例如:
return Response(
response=jsonify({
"data": {
"import_id": import_id
}
}),
status=201,
mimetype="application/json"
)
但看起来 flask-restless 不支持这样的东西:
2019-08-05 08:52:30,077 werkzeug INFO 172.21.0.1 - - [05/Aug/2019 08:52:30] "POST /imports HTTP/1.1" 500 -
2019-08-05 08:52:30,078 werkzeug ERROR Error on request:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/werkzeug/serving.py", line 303, in run_wsgi
execute(self.server.app)
File "/usr/local/lib/python3.7/site-packages/werkzeug/serving.py", line 293, in execute
for data in application_iter:
File "/usr/local/lib/python3.7/site-packages/werkzeug/wsgi.py", line 507, in __next__
return self._next()
File "/usr/local/lib/python3.7/site-packages/werkzeug/wrappers/base_response.py", line 45, in _iter_encoded
for item in iterable:
TypeError: 'Response' object is not iterable
是否有任何解决方法来使用 Response?如果没有,我如何 return 一个带有 flask-restfull 的 mimetype?
jsonify()
function returns a flask.Response()
object, while json.dumps(obj)
将 obj
序列化为 JSON 格式的字符串。
....
from Flask import json, Response
....
return Response(
response=json.dumps({
"data": {
"import_id": import_id
}
}),
status=201,
mimetype="application/json"
)