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信息,那究竟哪一种更好呢?为什么呢?

回复
阅读 3.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏