【发布时间】:2018-01-10 06:48:05
【问题描述】:
我正在研究Flask tutorial,我对使用应用程序上下文连接到数据库感到困惑。在页面上,作者说:
始终创建和关闭数据库连接非常 效率低下,因此您需要将其保留更长时间。因为 数据库连接封装了一个事务,你需要做 确保一次只有一个请求使用该连接。
但是,似乎创建和关闭连接正是代码完成的工作。我们有一个视图get_db,它连接到数据库,返回一个连接对象,如果不存在,则将其添加到应用程序上下文中。我们还有一个close_db 视图,当应用上下文被拆除时关闭连接对象。
我对这里发生的事情的理解如下:用户连接到应用程序的主页,与数据库建立连接,然后关闭它。每次用户向页面发出请求(例如,发布新的博客条目)时,都会与数据库建立新的连接,然后在请求完成时关闭。那么使用应用上下文有什么价值呢?为什么不直接为每个请求创建和关闭连接?
也许我在这里误解了一些东西 - 任何见解都值得赞赏!
【问题讨论】: