zoukankan      html  css  js  c++  java
  • window10系统下使用python版本实现mysql查询

    参考文档:

    兔大侠整理的MySQL-Python(MySQLdb)封装类

    Python安装模块出错(ImportError: No module named setuptools)解决方法

    环境 (windows10 && python3.3) || (linux &&python2.7)

    1.确保已经安装setuptools
    方法如下:>下载安装的脚本https://bootstrap.pypa.io/ez_setup.py,下载该脚本后运行
         >python ez_setup.py
         >即可。脚本会自动判断python的版本,自动下载,安装。
    2.安装pip
    方法如下:我们同样需要在Python的官网上去下载,
    解压到某目录下,cd进去,使用命令 python setup.py install 进行安装
    将X:PythonScript 目录添加到path 
     
     3.安装mysqldb
    pip install mysql-python
     
     代码是python2.7版本测试通过
    测试文件:
    DB.py
    #!/usr/bin/env python
    import MySQLdb
    import time
    
    class ZDB:
        
        error_code = ''
        _instance = None
        _conn = None
        _cur = None
    
        _TIMEOUT = 30
        _timecount = 0
    
        def __init__(self,dbconfig):
            try:
                self._conn = MySQLdb.connect(host=dbconfig['host'],
                                             port=dbconfig['port'],
                                             user=dbconfig['user'],
                                             passwd=dbconfig['passwd'],
                                             db=dbconfig['db'],
                                             charset=dbconfig['charset'])
            except MySQLdb.Error,e:
                self.error_code = e.args[0]
                error_msg = "MYSQL ERROR ! ",e.args[0].e.args[1]
                print error_msg
    
                if self._timecount < self._TIMEOUT:
                    interval = 5
                    self._timecount += interval
                    time.sleep(interval)
                    return self.__init__(dbconfig)
                else:
                    raise Exception(error_msg)
    
            self._cur = self._conn.cursor()
            self._instance = MySQLdb
    
    
        def query(self,sql):
            try:
                self._cur.execute("SET NAMES UTF8")
                result = self._cur.execute(sql)
            except MySQLdb.error,e:
                self.error_code = e.args[0]
                print "MYSQL ERROR-Query:",e.args[0],e.args[1]
                result=FALSE
            return result
    
        def update(self,sql):
            try:
                self._cur.execute("SET NAMES UTF8")
                result = self._cur.execute(sql)
                self._conn.commit()
            except MySQLdb.Error,e:
                self.error_code = e.args[0]
                print "MYSQL ERROR-Update:",e.args[0],e.args[1]
                result=FALSE
            return result
        def insert(self,sql):
            try:
                self._cur.execute("SET NAMES UTF8")
                self._cur.execute(sql)
                self._conn.commit()
                return self._conn.insert_id()
            except MySQLdb.Error,e:
                self.error_code = e.args[0]
                print "MYSQL ERROR-Insert:",e.args[0],e.args[1]
                result=FALSE
        def fetchAllRows(self):
            return self._cur.fetchall()
        def getRowCount(self):
            return self._cur.rowcount()
        def commit(self):
            self._conn.commit()
        def rollback(self):
            self._conn.rollback()
        def __del__(self):
            try:
                self._cur.close()
                self._conn.close()
            except:
                pass
        def close(self):
            self.__del__()

    使用测试:

    use.py

    #!/usr/bin/env python
    from DB import ZDB
    def main():
        dbconfig={'host':' ',
                  'port':3306,
                  'user':' ',
                  'passwd':' ',
                  'db':'test',
                  'charset':'UTF8'}
        db=ZDB(dbconfig)
    
        sql = "SELECT * FROM `user`"
        db.query(sql)
        result = db.fetchAllRows()
        print "This is the result>",result
        for row in result:
            for colum in row:
                print colum
        db.close()
    main()
    使用命令 python use.py 进行调用
     
     
    _____________________________________________________________
     
    也可以使用pymysql查询 代码是python3.3版本测试通过
    简单demo如下所示:
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    import pymysql
    conn=pymysql.connect(host='localhost',
                         port=3306,
                         user='root',
                         passwd='root',
                         db='test',
                         charset='utf8')
    cur = conn.cursor()
    sql = "SELECT * FROM chart_pie"
    cur.execute(sql)
    for r in cur.fetchall():
        for column in r:
            print(r)
    
    conn.close()
  • 相关阅读:
    Window 窗口类
    使用 Bolt 实现 GridView 表格控件
    lua的table库
    Windows编程总结之 DLL
    lua 打印 table 拷贝table
    使用 xlue 实现简单 listbox 控件
    使用 xlue 实现 tips
    extern “C”
    COleVariant如何转换为int double string cstring
    原来WIN32 API也有GetOpenFileName函数
  • 原文地址:https://www.cnblogs.com/ddddemo/p/5671557.html
Copyright © 2011-2022 走看看