Flask-SQLAlchemy使用问题记录
2017-02-08 22:13
260 查看
项目使用Flask-SQLAlchemy时出现了问题,花了很长时间,终于解决了,此处记录一下。
threaded: 多线程支持,默认不开启
session有多种生命周期管理方式,项目开始时使用的最长模式,即全程只用一个session,由于session不是线程安全的,所以在使用的时候会出现数据库gone away的现象。
解决的方法是每次需要操作数据库时新建一个session,并且在sessionmaker的参数中加上autocommit=True。
会话会在commit()后自动过期,所以添加autocommit=True后就不必调用clear() 或 close(), 对象会自动与当前事务同步。
1. Flask自带服务器假死现象
服务部署好后,访问链接经常出现500现象,使得访问时经常出错。解决问题的方法很简单,在app启动时加一个参数即可如下所示:app = Flask(__name__) app.run(threaded=True)
threaded: 多线程支持,默认不开启
2. sessionmaker
sessionmaker()被调用时会产生一个session工厂类,在使用时可以新建一个session,如下所示:Session = sessionmaker(bind=engine) session = Session()
session有多种生命周期管理方式,项目开始时使用的最长模式,即全程只用一个session,由于session不是线程安全的,所以在使用的时候会出现数据库gone away的现象。
解决的方法是每次需要操作数据库时新建一个session,并且在sessionmaker的参数中加上autocommit=True。
会话会在commit()后自动过期,所以添加autocommit=True后就不必调用clear() 或 close(), 对象会自动与当前事务同步。
相关文章推荐
- Python的Flask框架中SQLAlchemy使用时的乱码问题解决
- Python3中Flask使用flask_sqlalchemy的的问题以及解决
- Python的Flask框架中SQLAlchemy使用时的乱码问题解决
- Flask中使用Mysql的几点记录 / flask-sqlalchemy
- WPF中样式使用问题记录
- ado.net 操作excel 问题记录 -- 操作必须使用一个可更新的查询
- Oracle存储过程中使用记录类型注意的问题
- Cognos8安装使用问题记录
- Ubuntu使用问题记录,
- 记录使用BCB6出现的问题
- 关于数据集使用的问题记录
- 记录:在ASP.NET中使用ActiveX插件时遇到的问题
- 记录在eclipse中使用ant遇到到的一个小问题
- 关于apache使用CustomLog 记录日志以及错乱的问题
- Hibernate使用count(*)取得表中记录总数(跨Hibernate3.x版本问题)(转)
- 使用存储过程中的虚拟表解决同时从几个数据库服务器中读取记录的问题
- [错误记录]关于指针传递获得数据使用错误问题....
- 解决问题记录(1)-使用OleDbProvider连接Oracle出错
- Oracle数据库使用遇到问题记录
- 使用win7的问题步骤记录器记录你的问题