zoukankan      html  css  js  c++  java
  • Django 3.0 中连接mysql 8.0,可以不使用pymysql ,升级Mysqlclient即可

    python 中,连接mysql一般都推荐用pymysql ,而且在django中,网上的教程都是这么连接mysql的.

    import pymysql

    pymysql.install_as_MySQLdb()

    这实际是pymysql模块调用了模块中的一个函数 install_as_MySQLdb(),这个函数的注释是这么说的.

    After this function is called, any application that imports MySQLdb or
    _mysql will unwittingly actually use pymysql.

    大概意思是:

      调用此函数后,任何导入MySQLdb或_mysql的应用程序都会在不经意间实际使用pymysql。

    最近在使用Django 3.0 中, 导入 Pymsql的时候报错,提示Mysqlclient版本问题,.既然django 在我们选择使用MYSQL的情景时,实际自动调用的是MySQLdb, Pymysql是可有可无的,我就直接pip install 了最新版的MySQLdb, 版本号是1.4.6, 在没使用Pymysql, 也不用在settings中自己导入MySQLdb的情况下,顺利连接我的MySQL .

    我本地的安装的是MySQL8.0 ,用来练习Django中的ORM操作,没有发现问题. 我还没测试过Mysql 5.6 5.7版本.估计也没问题,(注:django不支持Mysql5.6以下的版本)

    看来老方法有 OUT 了的可能性.

    发布出来供大家参考, 如果有版本兼容性问题,还劳烦在本帖下留言,供大家分享.

    补充:

    django3.0官方文档说,3.0需要mysqlclient 1.3.13或者更高版本的支持,并且mysqlclient是推荐的数据库驱动程序.

    除了mysqlclient, django还可以使用Connector/Python 作为mysql的数据库驱动程序,这个驱动可以在dev.mysql.com下载. 这个驱动是Oracle提供的纯python驱动, 不需要MySQL客户端库或标准库之外的任何Python模块作为支持.

    不管mysqlclient还是Connector/Python都支持线程安全和连接池特性。

  • 相关阅读:
    决策树简介
    机器学习一百天-day7/11-KNN
    机器学习100天-day4,5,6,8逻辑回归
    机器学习一百天-day3多元线性回归及虚拟变量陷阱分析
    机器学习100天-day2简单线性回归
    机器学习100天-day1数据预处理
    sklearn.preprocessing.Imputer
    vue echart 中国地图 疫情图
    一周笔记
    js基础操作与方法
  • 原文地址:https://www.cnblogs.com/worldinmyeyes/p/12093495.html
Copyright © 2011-2022 走看看