赞
踩
from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) # 相关配置 app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:mysql@127.0.0.1:3306/test' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False app.config['SQLALCHEMY_ECHO'] = True db = SQLAlchemy(app) # 构建模型类 class Goods(db.Model): __tablename__ = 't_good' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(20), unique=True) count = db.Column(db.Integer) @app.route('/') def purchase(): goods = Goods(name='方便面', count=20) db.session.add(goods) # 主动执行flush操作, 立即执行SQL操作(数据库同步) db.session.flush() # Goods.query.count() # 查询操作会自动执行flush操作 db.session.commit() # 提交会话会自动执行flush操作 return "index" if __name__ == '__main__': db.drop_all() db.create_all() app.run(debug=True)
补充:
应用场合:当一次请求过程中,有多次提交数据,后面一次提交的数据需依赖前一次提交数据(成功)的基础上才能提交,可以先把前一次执行数据的结果刷新进数据库内存。
注:flush执行之后,仅仅是将数据临时刷新进数据库内存,并未真实写入磁盘文件,在commit提交后才真正写入磁盘。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。