你好,游客 登录 注册 搜索
背景:
阅读新闻

简单封装MySQLdb模块操作MySQL数据库

[日期:2017-03-25] 来源:Linux社区  作者:Zcy.gy [字体: ]

1. python连接mysql的connector有很多,我们选择MySQLdb
2. 让python支持MySQLdb模块

#pip2.7 install MySQL-python

3. 查看python2.7可使用的模块是否存在MySQLdb
# ipython
WARNING: IPython History requires SQLite, your history will not be saved
Python 2.7.11 (default, Mar 10 2016, 09:45:30) 
Type "copyright", "credits" or "license" for more information.
 
IPython 4.1.2 -- An enhanced Interactive Python.
?        -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?  -> Details about 'object', use 'object??' for extra details.
In [1]: help('modules')
Please wait a moment while I gather a list of all available modules...
 
MySQLdb            calendar            marshal

4. 简单封装的模块,测试没问题
script-name:mysql-conn.py
#!/usr/bin/python27
#-*-coding:utf-8-*-
 
#导入MySQL驱动原生模块
import MySQLdb 
 
class mysqldb():
        #构造器设定初始值
    def __init__(self,host='192.168.17.1',port=4306,user='root',passwd='zcy'): 
        self.host = host
        self.port = port
        self.user = user
        self.passwd = passwd
        #实例一开始就具备了连接和游标属性
        self.conn1 = MySQLdb.connect(host=self.host,port=self.port,user=self.user,passwd=self.passwd) 
        self.cur1 = self.conn1.cursor()
         
        #定义mysql中的Select查询语句
    def find(self,field,db,table): 
        """
            field -> query field
            db -> query database
            table -> query table
        """
        self.field = field
        self.db = db
        self.table = table
        self.cur1.execute('select ' + self.field + ' from ' + self.db + '.' + self.table)
        return self.cur1.fetchall()
         
        #建库
    def createdb(self,db): 
        self.cur1.execute('create database if not exists ' + db)
           
            #建表
    def createtable(self,db,table):   
        self.conn1.select_db(db)
        self.cur1.execute(
        '''
            create table ''' + table + ''' (
                id int(5) not null primary key auto_increment,
                name char(10) not null,
                phone varchar(12) not null,
                class char(20)
            );         
        ''')
                 
                #插入数据
    def insert(self,db,table,*l): 
        self.cur1.execute('insert into '+ db + '.' + table +  ' values(null,%s,%s,%s)' , *l)
        self.conn1.commit()

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-03/142177.htm

linux
相关资讯       MySQLdb  MySQLdb模块 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款