当尝试在Flask中使用jsonify为sqlalchemy数据库中的内容创建JSON端点时,contents类在其中定义了一个函数,以便根据类结构进行序列化。除了类的属性与另一个类有关系之外,其他的一切都正常工作。你知道吗
Base = declarative_base()
class Owner(Base):
__tablename__ = "owner"
id = Column(Integer, primary_key=True)
name = Column(String(250), nullable=False)
email = Column(String(250), nullable=False)
class Store(Base):
__tablename__ = "store"
id = Column(Integer, primary_key=True)
name = Column(String(80), nullable=False)
owner_id = Column(Integer, ForeignKey('owner.id'))
owner = relationship(Owner)
@property
def serialize(self):
return {
'id': self.id,
'name': self.name,
'owner_id': self.owner_id,
'owner': self.owner
}
class Product(Base):
__tablename__ = "product"
id = Column(Integer, primary_key=True)
name = Column(String, nullable=False)
description = Column(String)
img_url = Column(String)
price = Column(Integer)
store_id = Column(Integer, ForeignKey('store.id'))
store = relationship(Store)
owner_id = Column(Integer, ForeignKey('owner.id'))
owner = relationship(Owner)
@property
def serialize(self):
return {
'id': self.id,
'name': self.name,
'description': self.description,
'img_url': self.img_url,
'price': self.price,
'store_id': self.store_id,
'store': self.store,
'owner_id': self.owner_id,
'owner': self.owner
}
我在flask应用程序中使用的语法是:
@app.route('/market/stores/JSON')
def json_stores():
"""Return JSON of all the stores in the market."""
stores = session.query(Store).all()
return jsonify(stores=[i.serialize for i in stores])
@app.route('/catalog/store/<int:store_id>/JSON')
def json_item_in(store_id):
"""Return JSON of all the products in the store."""
products = session.query(Item).filter_by(store_id=store_id).all()
return jsonify(products=[i.serialize for i in products])
例如,从类中删除:
'owner': self.owner
以及: “存储”:自助商店哦
结果返回时没有任何错误,页面返回与我在类中定义的结构相同的内容的JSON。
我想不出正确的语法,我试着直接引用类名:
'owner': Owner.name
没用。你知道吗
我只希望JSON页面使用相同的方法显示产品的所有者名称(我知道还有其他方法返回内容的JSON)。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐