1
sometimesna1ve 2015 年 10 月 26 日
关注
借楼主宝地 , 顺便问一下 : 一个很简单的 flask + sqlalchemy 应用(无页面, 访问一个 url 返回 json 串), 在 view 代码的最开始初始化 sqlalchemy session, 供下面的所有 url route 共同使用, 这种写法是否合适? |
2
shajiquan 2015 年 10 月 26 日
试试 db.session.flush()
|
3
wayslog 2015 年 10 月 26 日
看样子是有主键生成策略的,那么你可以试一下 flush
|
4
ipconfiger 2015 年 10 月 26 日
先 flush 一下就对了
|
6
shajiquan 2015 年 10 月 26 日 |
9
sometimesna1ve 2015 年 10 月 26 日
@shajiquan 那正确的姿势可否赐教一下呢? 感谢已发送
|
10
thomaspaine 2015 年 10 月 26 日
@rockivy 推荐只用一个 session 吧,官方文档貌似有说
|
12
shajiquan 2015 年 10 月 26 日
@rockivy 可以创建一个 session poll ,然后每个 request 时去 poll 里取一个。或者, flask.before_request 时创建一个 session , flask.after_request 关闭此 session 。
|
13
sometimesna1ve 2015 年 10 月 26 日
@thomaspaine 目前的做法就是在 view 的顶部初始化一个 session, 下
面所有的 url route 中, 数据库的交互都使用了这个 session. |
14
sometimesna1ve 2015 年 10 月 26 日
@shajiquan before 和 after request 中创建和关闭 session 的开销大吗?
这个 session 背后是否有个隐藏的数据库连接池支撑呢? |
15
shajiquan 2015 年 10 月 26 日
@rockivy 有开销,但还好,就普通的连接而已,你未必会在每个 request 里有大量的事务吧?如果你配置了连接池就会有,反之就没有。
|
17
sometimesna1ve 2015 年 10 月 26 日
@shajiquan 了解了, 我先试试看, 感谢!
|
18
shajiquan 2015 年 10 月 26 日
@rockivy 下面两个链接供参考, SA 官方文档:
Contextual/Thread-local Sessions — SQLAlchemy 1.0 Documentation http://docs.sqlalchemy.org/en/rel_1_0/orm/contextual.html Session Basics — SQLAlchemy 1.0 Documentation http://docs.sqlalchemy.org/en/rel_1_0/orm/session_basics.html |
19
sometimesna1ve 2015 年 10 月 26 日
@shajiquan 收到, 今天做伸手党了, 非常感谢!
|
21
tuteng 2015 年 10 月 29 日
今天用到了
|