我在 flaskSQLAlchemy 中创建的模型中有一堆 GIS 表。这些模型中的每一个都有一个“geom”字段,它是一个 WKB 对象。需要将 JSON 序列化为 WKT 或 geojson,以便 API GET 调用可以工作。
我尝试使用 geoalchemy2 函数,但我被卡住了。我使用烧瓶棉花糖/棉花糖-sqlalchemy 组合,我尝试了类似以下的方法,但没有运气。
from geoalchemy2 import functions
from marshmallow import fields
class WKTSerializationField(fields.Field):
def _serialize(self, value, attr, obj):
if value is None:
return value
else:
if type(value).__name__ == 'WKBElement':
return functions.ST_AsEWKT(value)
else:
return None
class GISModelTableSchema(ma.ModelSchema):
class Meta:
model = GISModelTable
geom = WKTSerializationField(attribute="geom")
如果可以,请提供一个代码示例,如何序列化/反序列化棉花糖炼金术中的字段。或者此时欢迎任何答案。