繁体   English   中英

将变量从 app.py 导出到另一个 python 文件

[英]Export variable from app.py to another python file

我用 SQLAlchemy 创建了一个 Flask 应用程序。 我在app.py初始化了数据库,但我想在另一个文件中使用它: otherfile.py

应用程序

app = Flask(__name__)
app.config['JSONIFY_PRETTYPRINT_REGULAR'] = True
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///my_database'
db = SQLAlchemy(app)
print("TEST")

其他文件

from app import db
print(db)

但我得到了错误。

导入错误:无法导入名称“db”

基本上,我这样做是因为我不想在app.py编写 SQLAlchemy 逻辑,但我想将它保存在另一个文件中。

另外,我只想导出变量db 我不希望当我运行otherfile.py ,这也运行print("TEST")这是在app.py

我很幸运地看了这些答案:

如何在flask中共享全局应用对象?

将 Python Flask 应用程序拆分为多个文件

如何将flask app分成多个py文件?

SQLAlchemy类不需要在初始化时接收app参数。 因此,您可以做的是在您的otherfile.py创建db对象并将其导入app.py ,您可以在其中使用SQLAlchemy.init_app()app对象传递给它。

应用程序

from flask import Flask
from otherfile import db

app = Flask(__name__)
app.config['JSONIFY_PRETTYPRINT_REGULAR'] = True
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///my_database'

db.init_app(app)

其他文件

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM