美文网首页
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