sqlalchemy 循环查询表中总数量,发现查询结果都是一样解救方法

 Pala   2018-01-30 11:12   159 人阅读  0 条评论

代码示例:

import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy import func
from spiderman.config import DB_CONN_INFO
from baikedb.model import Cluster
import time

db_connect = "mysql+mysqldb://{}:{}@{}:3306/{}?charset=utf8".format(DB_CONN_INFO['name'],
                                                                    DB_CONN_INFO['password'],
                                                                    DB_CONN_INFO['ip'],
                                                                    DB_CONN_INFO['database'])

engine = create_engine(db_connect)
session = sessionmaker(bind=engine)()

if __name__ == '__main__':
    while 1:
        num = session.query(func.count(Cluster.id)).scalar()
        print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), num)
        time.sleep(60)

问题:

每隔一分钟查询数据库的总数量是多少,发现结果都是一样

解决办法:

在每次查询数量完成之后,添加代码session.close()

if __name__ == '__main__':
    while 1:
        num = session.query(func.count(Cluster.id)).scalar()
        print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), num)
        time.sleep(60)
        session.close()


本文地址:http://chenxm.cc/post/529.html
版权声明:本文为原创文章,版权归 Pala 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?