我正在使用 Flask 制作一个 Web 应用程序,使用 SQLALCHEMY 来管理数据库。
我需要存储更多的 onde 数据库。例如:“user_databse.sb”和“teacher_database.db”。
我阅读了文档来执行此操作,但是当我尝试在代码中使用时,我收到此错误:
ModuleNotFoundError:没有名为“MySQLdb”的模块
这是我的代码:
path = os.path.abspath(os.path.dirname(__file__))
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secretkey'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(path, 'databaseteste.db')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['SQLALCHEMY_BINDS'] = {
'user_database': 'mysql:///root:password@localhost/userdatabase'
}
db = SQLAlchemy(app)
# User model to database
class User(UserMixin, db.Model):
__bind_key__ = 'user_database'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), index=True, unique=True)
email = db.Column(db.String(120), unique = True, index = True)
password_hash = db.Column(db.String(128))
joined_at = db.Column(db.DateTime(), default = datetime.utcnow, index = True)
def __repr__(self):
return f'User {self.username}'
def set_passoword(self, password):
self.password_hash = generate_password_hash(password)
...
有人可以帮我找出我做错了什么吗?
我在代码中发现了问题。
我在文档中粘贴了默认路径,但忘记更改。
...
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['SQLALCHEMY_BINDS'] = {
'user_database': 'sqlite:///' + os.path.join(path, 'user-database.db')
}
...
刚刚更改为:
'sqlite:///' + os.path.join(path, 'user-database.db')