参考文档:
兔大侠整理的MySQL-Python(MySQLdb)封装类
Python安装模块出错(ImportError: No module named setuptools)解决方法
环境 windows10 | python3.3
1.确保已经安装setuptools
方法如下:>下载安装的脚本https://bootstrap.pypa.io/ez_setup.py,下载该脚本后运行
>python ez_setup.py
>即可。脚本会自动判断python的版本,自动下载,安装。
2.安装pip
方法如下:我们同样需要在Python的官网上去下载,
下载地址是:https://pypi.python.org/pypi/pip#downloads:
解压到某目录下,cd进去,使用命令 python setup.py install 进行安装
将X:\Python\Script 目录添加到path
3.安装mysqldb
pip install mysql-python
测试文件:
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查询
简单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()
时间: 2024-11-03 05:22:02