gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 21:04:25 26 4
gpt4 key购买 nike

我正在尝试使用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com