把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"})


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM