我可以从Flask返回某个类的对象吗?

时间:2015-03-10 19:57:54

标签: python flask flask-restful

我正在使用flask.ext.restful api并点击对象的API。

我有一个班级X. 我创建了该类的对象。 现在我想将此对象返回给jQuery请求。

object_of_x=X()
print object_of_x  # output -> <X instance at 0x3602cb0>
return object_of_x

它给了我一个错误。 当我执行render_template('x.html',x=object_of_x)

时,它工作正常

是否无法使用Flask或flask.ext.restful

返回某个类的实例

2 个答案:

答案 0 :(得分:2)

要做的是将对象序列化为JSON字符串或XML,然后返回。在客户端,只需从收到的字符串创建一个JS对象。

答案 1 :(得分:1)

取决于您要返回的内容...您可以在课程中定义__dict__方法,然后在路线中使用return jsonify(x.__dict__)

>>> class X(object):
...   def __init__(self, thing1, thing2):
...     self.thing1 = thing1
...     self.thing2 = thing2
>>> x = X("hey", "listen")
>>> from json import dumps as jsonstring
>>> jsonstring(x.__dict__)
'{"thing2": "listen", "thing1": "hey"}'