您的位置:首页 > 编程语言 > Python开发

python中使用MySQLdb模块进行操作

2017-02-20 19:42 871 查看
MySQLdb中主要的类有:connect ,  cursors, excute,executemany

处理过程:先基于connect类创建连接,实例化出一个连接对象,基于cursors类创建游标,游标相当于打开文件时候的指针,基于游标将请求发送到服务器端,服务器端基于游标的某个方法接收此请求,服务器端处理完请求后,关闭游标,最后关闭连接。

示例:将某个有规律的文件按行写入数据库

环境:centos7

1.首先安装数据库,并创建mydb库

yum install -y mariadb-server

systemctl  start mariadb.service   ///启动服务

MariaDB [mydb]> GRANT ALL ON *.* TO 'myuser'@'127.0.0.1' IDENTIFIED BY 'mypass';

MariaDB [mydb]> GRANT ALL ON *.* TO 'hiuser'@'127.0.0.1' IDENTIFIED BY 'mypass';

MariaDB [mydb]> FLUSH PRIVILEGES;

2.编辑文件  

vim  mysql_conn.py

#!/usr/bin/env python

import MySQLdb as mysql         ///导入MySQLdb库,别名设置为mysql

conn = mysql.connect()            ///基于connect类创建连接

conn = mysql.connect(host='127.0.0.1',user='hiuser',passwd='mypass',db='mydb')     ///连接数据库mydb

cur = conn.cursor()                     ///创建游标实例

f1 = open('/etc/passwd','r')       ///打开文件

f1.seek(0)                               ///我习惯将文件指针指向最开始的地方,虽然看起来没什么用。。。。

cur.execute('create table mydb.t9(username varchar(30),passwd char(10),uid varchar(20),gid varchar(20),groupname varchar(130),homedir varchar(30),shell varchar(30))')                ///创建表t9

for i in f1:

    l1 = i.split(':')                      ///将字符串i直接转换为列表l1

    sqlins = 'insert into t9 values(%s,%s,%s,%s,%s,%s,%s)'     ///将插入命令写入一个字符串中

#    cur.execute('insert into t9 values(%s,%s, %s, %s,%s, %s,%s)',l1)     ///向表中插入字段,%s是占位符

    cur.execute(sqlins,l1)                   ///执行插入语句,将列表l1写入t9中

    conn.commit()                 ///这步很重要,如果不提交,最后就不会生效,

cur.execute('select * from t9')    

cur.fetchall()     ///获取上面查询所得的结果

cur.close()        ///关闭游标

conn.close()    ///关闭连接

f1.close()       ///关闭文件

3.执行文件

chmod +x  mysql_conn.py

./mysql_conn.py

4.去数据库查询结果,如图:



Author:网名为什么那么长
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: