Flask-Sqlalchemy 中,db.session.query() 和 model.query有什么区别是什么?

from flask_sqlalchemy import Sqlalchemy

db = Sqlalchemy()

class User(db.Model):
    
    __tablename__ == "test_table"
    
    id = db.Column(db.Integer, primary_key=True, autoincrement=True) 
    nick = db.Column(db.String(255))
    sex = db.Column(db.Boolean(1))
    
    # 第一种方法
    def get_version_one(self):
        return self.query.all()
    
    # 第二种方法
    def get_version_two(self):
        return db.session.query(User).all() 
        
    # 删除数据时,我的处理方式:
    def delete_user(self, uid):
        data = self.query.get(uid)
        if d:
            try:
                db.session.delete(d)
                db.session.commit()
                return Success(msg="ok")
            except Expection as error:
                logger.error(str(error))
                db.session.rollback()
                raise DeleteFailed(msg='sorry')
        return NotFount(msg="xxxx")
            

如上述描述(这只是个事例代码),我使用flask-sqlalchemy时,有两种方法可以打印出所有的User信息,那究竟哪一种更好呢?为什么呢?

阅读 5.1k
推荐问题