所以我想创建一个数据库,但我想将文件分开以获得更好的可见性,但是我不知道如何从其他文件创建表。
基本上我的数据库已创建,但表似乎不起作用...
这是我的main.py文件:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
db = SQLAlchemy(app)
if __name__ == "__main__":
app.run()
这是我的model.py文件:
from main import db
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(20))
答案 0 :(得分:0)
您只需要从其所在的文件中导入它即可。假设您的model.py
像app/models
一样位于app/models/model.py
内,则只需完成
from app.models.model import User
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
if __name__ == "__main__":
app.run()
然后,您可以像在同一文件中一样继续处理模型。我还注意到您正在从db
导入main.py
。这将导致循环依赖,并且将无法正常工作。只需在与User模型相同的目录中制作一个__init__.py
文件,然后像下面这样在该文件中初始化db:
from flask import current_app as app
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
db = SQLAlchemy(app)
从__init__.py
导入数据库后,如下所示:
from . import db # . here refers to the __init__.py file
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(20))