关于flask连接数据库操作失败的原因

我在学习flask框架的过程中遇到了第一个问题就是数据库连接的问题,在测试中一直没有结果。

可能是因为如下的问题:

1.我一开始使用的是python3.10以上版本,高版本导致的无法正常连接

在app.config['SQLALCHEMY_DATABASE_URI'] = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8mb4"中f显示报错,我自行理解就是高版本导致的,后来换成3.9就正常使用        

from flask import Flask
from flask_sqlalchemy import SQLAlchemy


app = Flask(__name__)
HOSTNAME = '127.0.0.1'
PORT = 3306
USERNAME = ''#你的数据库用户名
PASSWORD = ''#你的数据库密码
DATABASE = '' #你的数据库名称

app.config['SQLALCHEMY_DATABASE_URI'] = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8mb4"

2.flask_sqlalchemy与SQLALchemy版本不兼容,这个问题可以从以下这位作者的操作中修改。

https://blog.csdn.net/qq_40821260/article/details/90273925

3.在测试代码中,我们需要自行添加from sqlalchemy import text

将原有代码

db = SQLAlchemy(app)

with app.app_context():
    with db.engine.connect() as conn:
        rs = conn.execute("select 1")
        print(rs.fetchone())
修改为
db = SQLAlchemy(app)

with app.app_context():
    with db.engine.connect() as conn:
        rs = conn.execute(text("select 1"))
        print(rs.fetchone())

所有源代码如下:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import text

app = Flask(__name__)

HOSTNAME = '127.0.0.1'
PORT = 3306
USERNAME = ''#你的数据库用户名
PASSWORD = ''#你的数据库密码
DATABASE = '' #你的数据库名称

app.config['SQLALCHEMY_DATABASE_URI'] = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8mb4"

db = SQLAlchemy(app)

with app.app_context():
    with db.engine.connect() as conn:
        rs = conn.execute(text("select 1"))
        print(rs.fetchone())



@app.route('/')
def hello_world():
    return 'Hello World!'


if __name__ == '__main__':
    app.run()

 希望这些对于学习flask的人有帮助,感谢你们的观看

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值