在 app 中使用 orm 连接数据库,是不是每个请求都要对数据库进行访问?
怎么做到在需要访问的时候访问,不需要的不连接数据库!
比方对静态页面操作是不需要读取数据这样?
在 flask 中 before_request 方法具体的使用环境是怎么样的?
在 peewee 这样的 orm 中怎么使用 before_request ?还是不需要了呢?
要是每个请求都对数据库进行连接好像很浪费!
具体怎么优化,谢谢
1
janxin 2016-01-30 15:18:51 +08:00
每次请求创建数据库请求肯定是消耗特别大的方法,官方的例子也是使用了 if db is None 判断是不是 DB 存在然后进行连接。
当然简单的方法是使用 flask-sqlalchemy 或者 flask-peewee 。 before_request 用于做一些针对每个请求都要做的事情,当然也可筛选一部分出来。 |
2
loading 2016-01-30 15:29:44 +08:00 via Android
你可以把 before_request 清空,把连接数据库的代码写成其他函数,需要连接的地方加一下(建议使用装饰器),这样做只是比较方便,减少代码。
其实 before_request 也就是装饰器吧? |
3
22too 2016-01-30 15:44:36 +08:00
首先你要了解这个 before_request 这个什么意思,
还有一个 after_request ,这个两个是对应的。 一个是为了连接数据库,一个是为了关闭连接。 你可以不用这个 before_request ,仅仅在需要使用数据库的连接 url 上,使用连接,连接完了关闭。 当然可能你还是需要 redis 。 |