python - mysql - 如何确保使用flask-sqlalchemy 在 Flask 中成功连接 mysql 数据库?

标签 python mysql database

我正在尝试使用 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是否有问题,因为我发现有多个用户

enter image description here

带着这些问题,我无法确定我是否成功连接到数据库。有人可以帮忙吗?

最佳答案

您的数据库似乎没有将自动提交设置为打开。 您可以从您的应用程序中“强制”它

db = SQLAlchemy(app, session_options={'autocommit': True})

关于python - mysql - 如何确保使用flask-sqlalchemy 在 Flask 中成功连接 mysql 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36949840/

相关文章:

python - 替换大型 txt 文件中的字符串时如何绕过内存错误?

python - 如何将一个数组插入到另一个 ndarray?

database - 将列表成对并使用 sqlite3 将它们写入 .db 文件

php - 在数据库中存储、检索和重建路径

mysql - MSSQL 相当于 MYSQL ELT() 函数

Java 数据库插入失败

mysql - Laravel 到 WordPress 的迁移

python - 从文本文件中解析/提取数据。无法使其工作

python - 在 python 中使用 os.utime 更改后文件修改时间恢复

mysql - 带有 ¶ 符号的 SQL 正则表达式