flask mysql windows_Flask连接Windows版MySQL时出现的问题记录

在使用Flask连接Windows上的MySQL时,可能会遇到ModuleNotFoundError错误,原因是MySQLdb不支持Python3,可以改用pymysql。另外,可能碰到1336错误,涉及编码格式问题,通过切换到mysqlconnector驱动可以解决。还有可能出现caching_sha2_password错误,这与MySQL 8.0的强密码加密有关,可以通过更改MySQL配置或升级Python版本来解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录1.ModuleNotFoundError: No module named 'MySQLdb'2.问题 1336 Incorrect string value: '\xD6\xD0\xB9\xFA\……3.python3.5连接mysql8.0.13 出现 caching_sha2_password错误。

1.ModuleNotFoundError: No module named ‘MySQLdb’

在Flask中连接MySQL时出现ModuleNotFoundError: No module named 'MySQLdb'错误,需要在配置SQLALCHEMY_DATABASE_URI时加上pymysql:

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:dzd123@localhost/你的数据库名'

如果没有pymysql话的需要用pip进行安装。

原因为:MySQLdb只支持Python2.*,还不支持3.*,可以用pymysql代替。

参考链接:https://blog..net/qq_25046261/article/details/78991442

2.问题 1336 Incorrect string value: '\xD6\xD0\xB9\xFA\……

具体报错为:

default.py:470: Warning: (1366, "Incorrect string value: '\xD6\xD0\xB9\xFA\xB1\xEA...' for column 'VARIABLE_VALUE' at row 479")

原因可能是哪一部分的驱动的编码格式有问题。

换成使用mysqlconnector就可以了,如下:

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+mysqlconnector://root:password@localhost/database'</

好的,以下是一个完整的 Flask 应用程序,使用 Flask-SQLAlchemy 连接 MySQL 数据库的示例: 首先,安装必要的依赖: ``` pip install flask flask_sqlalchemy pymysql ``` 然后,在您的 Flask 应用程序文件中,导入必要的模块: ```python from flask import Flask from flask_sqlalchemy import SQLAlchemy import pymysql ``` 接下来,创建一个 Flask 应用程序实例并配置 MySQL 数据库连接: ```python app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://<username>:<password>@<hostname>/<dbname>' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app) ``` 在上面的代码中,您需要将 `<username>`, `<password>`, `<hostname>` 和 `<dbname>` 替换为您的 MySQL 数据库的实际值。 然后,创建一个模型类来表示您的数据库表: ```python class User(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50)) email = db.Column(db.String(120), unique=True) def __repr__(self): return '<User %r>' % self.name ``` 最后,启动 Flask 应用程序并进行测试: ```python if __name__ == '__main__': app.run(debug=True) ``` 完整的示例代码如下: ```python from flask import Flask from flask_sqlalchemy import SQLAlchemy import pymysql app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://<username>:<password>@<hostname>/<dbname>' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app) class User(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50)) email = db.Column(db.String(120), unique=True) def __repr__(self): return '<User %r>' % self.name if __name__ == '__main__': app.run(debug=True) ``` 注意,您需要先在 MySQL 数据库中创建一个名为 `<dbname>` 的数据库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值