来自另一个模块的@ app.before_request

时间:2013-10-23 09:24:01

标签: python flask

我正在Flask上迈出第一步,为了它的乐趣,我创建了另一个模块,专注于与数据库相关的东西。所以我要说我有两个文件:

  • Main.py
  • DB.py

在DB.py中,我有一个标有装饰器@app.before_request的函数。

但是,当我在Main.py中执行代码时,虽然我有:@app.before_request,但是没有触发链接到DB.py中from DB import *的函数。

另一方面,如果我将函数和装饰器添加到Main.py,那么它将起作用。

所以我的问题是:如果没有将@app.before_request(和相应的函数)移动到Main.py,有没有办法让这个工作?


Flask社区非常友好地帮助像我这样的新手在他们的IRC频道,所以对于有这个问题的未来人来说,这是一个简单的解决方案:

  1. 将导入(数据库)移至应用程序定义之后 - app = ...(感谢rknol)

  2. [20:01] xingke,如果只有少数几个,只需在db.py中定义一个函数,它将注册@before_request函数,如下所示:http://bpaste.net/show/143071/ - 导入init_db函数,然后在定义后在应用程序上运行它。

0 个答案:

没有答案