美文网首页
flask中导入数据库mysqlclient报错,无法连接数据库

flask中导入数据库mysqlclient报错,无法连接数据库

作者: 测试探索 | 来源:发表于2022-08-14 15:01 被阅读0次

一、问题背景

在使用flask连接数据库时,下载flask_sqlalchemy后,继续下载mysqlclient,因为mysqlclient兼容性较差,并且要兼容python2和python3,,所以运行时报错NameError: name '_mysql' is not defined,如截图


image.png

二、解决方案(两种)

方案一

导入pymysql,并通过install_as_MySQLdb()方法处理即可

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import pymysql
pymysql.install_as_MySQLdb()
方案二

数据库连接地址中通过数据库+pymysql方式

app.config["SQLALCHEMY_DATABASE_URI"] = 'mysql+pymysql://root:1234@127.0.0.1/test38'
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import pymysql
pymysql.install_as_MySQLdb()

# 兼容py2和py3的数据库模块
"""
解决方案1
pymysql.install_as_MySQLdb()

解决方案2
app.config["SQLALCHEMY_DATABASE_URI"] = 'mysql+pymysql://root:Hello1234@127.0.0.1/test38'

"""

app = Flask(__name__)

#1.在app对象中天剑数据库连接配置信息
# 数据库连接地址
app.config["SQLALCHEMY_DATABASE_URI"] = 'mysql://root:Hello1234@127.0.0.1/test38'
# 关闭数据库修改跟踪操作【优化性能】
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
# 输出底层执行的sql语句
app.config["SQLALCHEMY_ECHO"] = True


#2.创建数据库库对象 --绑定应用对象
db = SQLAlchemy(app)
print(db)

#3.自定义模型类
#4.根据模型类,创建所有的表结构




@app.route('/')
def index():
    return "index page"

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


相关文章

网友评论

      本文标题:flask中导入数据库mysqlclient报错,无法连接数据库

      本文链接:https://www.haomeiwen.com/subject/cpchgrtx.html