把SQLAlchemy查询对象转换成字典
1-假设查出来的为单个对象
1-1 在model.py中为模型对象添加字典转换函数:
from exts import db class User(db.Model): __tablename__ = 'user' id = db.Column(db.Integer, primary_key=True, autoincrement=True) username = db.Column(db.String(50), nullable=False) age = db.Column(db.Integer, nullable=False) # 把SQLAlchemy查询对象转换成字典 def to_dict(self): return {c.name: getattr(self, c.name) for c in self.__table__.columns}
1-2 接口函数中的使用:
@app.route('/query_id/<user_id>', methods=['GET']) def query_by_id(user_id): user = Girl.query.filter(User.id == user_id).first() if user: return jsonify({"code": 200, "msg": "success", "user": user.to_dict()}) else: return jsonify({"code": 100, "msg": "None"})
2-当查出来的为多个对象
2-1 在之前单个对象的基础上,在接口文件中添加一个将多个对象依次转换为字典的循环函数:
# 将查出来的所有对象都转换成json的函数 def to_json(all_vendors): v = [ven.to_dict() for ven in all_vendors] return v
2-2 接口函数中的使用:
@app.route('/query_age/<user_age>', methods=['GET']) def query_by_age(user_age): users = User.query.filter(User.age == user_age).all() if users: return jsonify({"code": 200, "msg": "success", "users": to_json(users)}) else: return jsonify({"code": 100, "msg": "None"})
本文来自博客园,作者:sinatJ,转载请注明原文链接:https://www.cnblogs.com/zishu/p/10977232.html