我试图使用 Flask 创建一个简单但不琐碎的应用程序,但在文档中没有很好地解释的情况下一直遇到问题。
我希望我的应用程序分为不同的模块,但看起来很难从除了主模块以外的任何其他地方访问主要的 app
对象(或者 flask-sqlalchemy
中的 db
)。似乎您必须真正编写自己的方法将其视为所有内容都可以访问的全局变量,这需要一些可疑的代码和一点时间。
无论是 app
还是 db
都是在实例化主应用程序的级别创建的,每个示例都假定它们在顶层可用。但如果我将不同的 URL 处理程序拆分到不同的模块中,我就失去了使用 @app.route
装饰器的能力。我可以通过 app.add_url_rule('/...', some.module...)
解决这个问题,但再一次,app
没有传递到该函数。
db
也有同样的问题 - 我不知道是否应该将其放入 g
,或者以某种方式通过 app
访问它。这样做对我把模型移到单独的模块中没有帮助 - 当导入它们时,我该如何访问 db
?所有示例都假定它只是作为局部变量可用。
我是否遗漏了一些明显的东西,或者我在这里尝试使用 Flask 的错误任务?
db
和app
变量存储在类内部。 - Blender