Estou construindo um aplicativo com AngularJS + Flask no Heroku. Eu realmente amo como o Flask é extensível e poderoso. Aqui está um pequeno pedaço de código que eu uso para converter o modelo SQLAlchemy em dicionário e, em seguida, serializo-o para JSON.
def model_to_dict(inst, cls):
"""
Jsonify the sql alchemy query result. Skips attr starting with "_"
"""
convert = { "DATETIME": datetime.datetime.isoformat}
d = dict()
for c in cls.__table__.columns:
if c.name.startswith("_"):
continue
v = getattr(inst, c.name)
current_type = str(c.type)
if current_type in convert.keys() and v is not None:
try:
d[c.name] = convert[current_type](v)
except:
d[c.name] = "Error: Failed to covert using ", unicode(convert[c.type])
elif v is None:
d[c.name] = unicode()
else:
d[c.name] = v
return d
Em vez de usar sublinhado para ocultar campos, você pode escrever seu próprio serializador, por exemplo, https://github.com/mattupstate/overholt/blob/master/overholt/products/models.py