我正在尝试使用 Flask 构建后端。我知道如何在 Flask 中连接 sqlite
。但似乎连接mysql
比较复杂。
我试过了
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:password@localhost/test'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
email = db.Column(db.String(120), unique=True)
def __init__(self, username, email):
self.username = username
self.email = email
def __repr__(self):
return '<User %r>' % self.username
admin = User('admin', 'admin@example.com')
db.create_all() # In case user table doesn't exists already. Else remove it.
db.session.add(admin)
db.session.commit() # This is needed to write the changes to database
User.query.all()
User.query.filter_by(username='admin').first()
程序可以正常执行。但是,我使用Navicat
检查该表是否已添加到数据库中,我发现test
数据库仍然是空的。
其实我不太明白数据库连接到底是什么。因为好像我可以在Navicat
中创建连接,并且在代码中也连接了数据库,那么这些连接有什么区别呢?
我想知道SQLALCHEMY_DATABASE_URI
是否有问题,因为我发现有多个用户
带着这些问题,我无法确定我是否成功连接到数据库。有人可以帮忙吗?
最佳答案
您的数据库似乎没有将自动提交设置为打开。 您可以从您的应用程序中“强制”它
db = SQLAlchemy(app, session_options={'autocommit': True})
关于python - mysql - 如何确保使用flask-sqlalchemy 在 Flask 中成功连接 mysql 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36949840/