flask mysql py3.7_py3-flask-pymysql 兼容问题(use_native_unicode).py
时间: 2023-12-16 12:04:52 浏览: 182
这是一个关于 Flask、MySQL、PyMySQL 在 Python 3.7 环境下的兼容性问题。在使用 Flask 框架连接 MySQL 数据库时,需要使用 PyMySQL 库,而在 Python 3.7 中,PyMySQL 默认使用了本地编码,这可能会导致一些字符编码问题。解决方法是在连接 MySQL 数据库时,设置 use_native_unicode=False 参数,这样就可以避免这个问题。以下是示例代码:
```python
from flask import Flask
from flaskext.mysql import MySQL
app = Flask(__name__)
app.config['MYSQL_DATABASE_HOST'] = 'localhost'
app.config['MYSQL_DATABASE_USER'] = 'root'
app.config['MYSQL_DATABASE_PASSWORD'] = 'password'
app.config['MYSQL_DATABASE_DB'] = 'test'
app.config['MYSQL_DATABASE_CHARSET'] = 'utf8mb4'
mysql = MySQL()
mysql.init_app(app)
conn = mysql.connect(use_unicode=True, charset='utf8mb4', use_native_unicode=False)
```
在这个示例代码中,我们设置了 MySQL 数据库的参数,包括主机名、用户名、密码、数据库名和字符集等。然后,我们使用 Flask-MySQL 扩展连接 MySQL 数据库,并设置连接参数,其中 use_unicode=True 表示使用 Unicode 编码,charset='utf8mb4' 表示使用 UTF-8 编码,use_native_unicode=False 表示禁用本地编码。这样,我们就可以避免 Python 3.7 中的字符编码问题了。
阅读全文