Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python @来自另一个模块的应用程序前请求_Python_Flask - Fatal编程技术网

Python @来自另一个模块的应用程序前请求

Python @来自另一个模块的应用程序前请求,python,flask,Python,Flask,我在Flask上迈出了第一步,为了好玩,我又创建了一个模块,重点关注数据库相关的内容。假设我有两个文件: Main.py DB.py 在DB.py中,我有一个函数标记为decorator@app.before\u请求 但是,当我在Main.py中执行代码时,链接到DB.py中@app.before_请求的函数不会被触发,尽管我有:from DB import* 另一方面,如果我将函数和decorator添加到Main.py,那么它就可以工作了 所以我的问题是:有没有办法在不将@app.befor

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

Main.py DB.py 在DB.py中,我有一个函数标记为decorator@app.before\u请求

但是,当我在Main.py中执行代码时,链接到DB.py中@app.before_请求的函数不会被触发,尽管我有:from DB import*

另一方面,如果我将函数和decorator添加到Main.py,那么它就可以工作了

所以我的问题是:有没有办法在不将@app.before_请求和相应函数移动到Main.py的情况下让它工作

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

将DB的导入移动到应用定义-app=。。。谢谢你

[20:01]xingke,如果只有少数几个,只需在db.py中定义一个函数,该函数将注册@before_请求函数,如下所示:-导入init_db函数,然后在定义后在应用程序上运行它


您可以将错误输出添加到问题中吗?AttributeError:“\u AppCtxGlobals”对象没有属性“db”,您可以展示一些代码,说明如何在主模块中使用g.db.execute吗?g.db.execute“insert into project uid,date values?”,?,[who,when]@xingke如果您找到了解决方案,您可以回答自己的问题并接受它。