01-python操作Mysql数据库

python操作数据库流程:
--创建数据库连接 Conn=pymysql.connect()
--创建游标cur=Conn.cursor()
--游标下执行sql cur.execute(sql)
--提交游标数据到数据库conn.commit()
--关闭游标cur.close()
--关闭数据库conn.close()

实例

实例1:创建数据库连接

import pymysql,re,logging,os

class OperationDb_interface(object):

def __init__(self):

self.conn=pymysql.connect(host='localhost', user='root',passwd='*****',db='my_test',port=3306,charset='utf8')#创建数据库链接

self.cur=self.conn.cursor()#创建游标

实例2:查询单条语句

 def selectOne(self,condition):
      try:
         self.cur.execute(condition)#游标下执行sql
         results=self.cur.fetchone()#获取一条结果
      except pymysql.Error,e:
         results="sql0001"#数据库执行错误
         print"Mysql Error %d:%s"% (e.args[0],e.args[1])
         logging.basicConfig(filename=os.path.join(os.getcwd(),'./log.txt'),
             level=logging.DEBUG,format='%(asctime)s %(filename)s[line:%(lineno)d] % (levelname)s %(message)s')
         logger =logging.getLogger(__name__)
         logger.exception(e)
      finally:
         return  results

实例3:查询多条语句

   def selectAll(self,condition):
       try:
           self.cur.execute(condition)
           self.cur.scroll(0,mode='absolute')#光标回到初始位置
           result=self.cur.fetchall()#返回游标中所有结果
       except pymysql.Error,e:
           result='sql0001'#数据库执行错误
           print "Mysql Error %d:%s" % (e.args[0],e.args[1])
           logging.basicConfig(filename=os.path.join(os.getcwd(),'./log.txt'),
                level=logging.DEBUG,format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s % (message)s')
           logger=logging.getLogger(__name__)
           logger.exception(e)
       finally:
           return  result

实例4:定义插入多条语句数据库操作

   def insertMore(self,condition,params):#对应的params是个tuple或list
      try:
         self.cur.executemany(condition,params)
         self.conn.commit()#提交游标数据到数据库
         return True
      except pymysql.Error,e:
         results='sql001'#数据库执行错误
         print "Mysql Error %d:%s"%(e.args[0],e.args[1])
         logging.basicConfig(filename=os.path.join(os.getcwd(),'/log.txt'),
                 level=logging.DEBUG,format='%(asctime)s%(filename)s %(filename)s[line:%(lineno)d]% (levelname)s%(message)s' )
         logger=logging.getLogger(__name__)
         logger.exception(e)
         return  False

关闭数据库

 def __del__(self):
          if self.cur !=None:
             self.cur.close()#关闭游标
          if self.conn !=None:
             self.conn.close()#关闭数据库链接
if __name__=="__main__":
   test=OperationDb_interface()#实例化类
   result=test.selectAll("select * from student")
   #result=test.insertMore("insert  into student VALUES (%s,%s);",(('003','zhaogang'),('004','Angelia'))) #对应的params是个tuple或list
   print (result)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一,安装mysql 如果是windows用户,mysql的安装非常简单,直接下载安装文件,双击安装文件一步一步进行...
    何苦_python_java阅读 502评论 0 5
  • 谁能借我点时间,好想再多点再多点时间啊,我是不是好贪心,什么都想兼顾到。又想跑步又想学习又想看剧又想跟朋友们玩又想...
    啾啾fing阅读 122评论 0 0
  • 亲爱的, 我们一周年了. 昨晚我恭喜你一岁快乐, 然后你回答我"同喜同喜". 我们彼此都笑了. 我有点担心这样庆祝...
    玉_82阅读 203评论 0 0
  • 仰望天空,只是为了不让泪水滑出眼眸。 如果你是鱼,请不要迷恋天空。如果你是鸟,请不要痴情海洋。(选自汪国真诗集) ...
    水榭歌沨阅读 284评论 2 8
  • 会导致进程从执行态变为就绪态的事件是 : 被高优先级进程抢占,剥夺了处理机的资源。而资源没有得到满足,进入阻塞状态...
    HenryTien阅读 176评论 0 0