1

我在 Flask 上迈出了第一步,只是为了好玩,我又创建了一个专注于数据库相关内容的模块。所以假设我有两个文件:

  • 主文件
  • 数据库.py

在 DB.py 中,我有一个用 decorator 标记的函数@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 函数,然后在定义后在应用程序上运行它。

4

0 回答 0