python学习之一-MySQL数据库连接

从昨天开始就一直在折腾旧电脑安装MySQL数据库,安装5.7不成功,后来尝试安装5.5版的exe文件,非常顺利。
今天开始正式学习Python操作MySQL数据,现在记录下学习历程

  1. 需安装mysqlclient,在https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient下载,因我安装的3.7版python,这里下载相应版本mysqlclient‑1.4.3‑cp37‑cp37m‑win_amd64.whl,安装需进入相应目录,使用pip3 install mysqlclient‑1.4.3‑cp37‑cp37m‑win_amd64.whl
  2. 跟着公众号 Python爱好者社区学习,首先需在mysql创建一个表,后期插入数据总是报错“字符集与utf8不符”,后来加上一句set names gbk;完美解决,然后跟着写代码操作数据库,都很顺利,下面把相关代码贴在这里
import MySQLdb

class Mysql(object):

    def __init__(self):
        self.connect()

    def connect(self):
        try:
            self.conn = MySQLdb.connect(
                    host='127.0.0.1',
                    user='root',
                    passwd = '****',
                    db = 'test',
                    port = 3306,
                    charset = 'utf8'
                )
        except MySQLdb.Error as e:
            print('Error:%s'%e)

    def close_conn(self):
        try:
            if self.conn:
                self.conn.close()
        except MySQLdb.Error as e:
            print('Error:%s'%e)

    def get_a(self):
        sql = 'select * from `student` where `sid` = %s;' 
        cursor = self.conn.cursor()
        cursor.execute(sql, ('01',))
        data = cursor.fetchone()
        print(data)
        cursor.close()
        self.close_conn()

    def add_a(self):
        sql = "insert into `student`(`sid`,`sname`) value(%s, %s);"
        cursor = self.conn.cursor()
        cursor.execute(sql,('05','白云'))
        self.conn.commit()
        cursor.close()
        self.close_conn()

def main():
    object = Mysql()
    #object.get_a()
    object.add_a()

if __name__ == '__main__':
    main()

#查询报utf8编码错误   set names gbk;
  1. MySQL和pandas结合导入数据到数据库,简单例子如下:
#pip install PyMySQL
#pip install sqlalchemy
import MySQLdb
import pandas as pd
from sqlalchemy import create_engine

host = '127.0.0.1'
port = 3306
db = 'test'
user = 'root'
password = '****'

engine = create_engine(str(r"mysql+mysqldb://%s:" + '%s' + "@%s/%s") % (user, password, host, db))

try:
    df = pd.DataFrame([[1,'x'],[2,'y']],columns=list('ab'))
    df.to_sql('test1',con=engine,if_exists='replace',index=False)
except Exception as e:
    print(e)

今天2019年8月10日也算是有一点小收获,想记录下来,以后数据库连接可以参考,这是我在CSDN的第 一篇博客,以前是在网易写,其实也好没记录,现在要重启博客,加油,继续成长,拥抱Python,一切不晚

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值