python中使用MySQLdb模块进行操作

来源:互联网 发布:微信域名检测 php源码 编辑:程序博客网 时间:2024/05/18 03:03

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:网名为什么那么长



0 0
原创粉丝点击