python: pymysql模板

作者: luffynoonepiece | 来源:发表于2020-06-22 10:15 被阅读0次

可直接套用的连接mysql脚本,需要在同一目录底下先建好config档


# -*- coding:utf-8 -*-

import pymysql

import configparser

import logging

import os

import pandas as import pd

class common():

    config = None

    db = None

    def run(self):

        self.init()

        self.query()

    def init(self):

        self.config = configparser.RawConfigParser()

        self.config.read(r'./config.cfg')

        if not os.path.exists('./Log'):

            os.makedirs('./Log')

        logging.basicConfig(filename = './Log/'+datetime.datetime.today().strftime("%Y%m%d")+'.log'

                    , level = logging.INFO

                    , format = '%(asctime)s %(message)s'

                    , datefmt = '%Y/%m%d %T:%M:%S:%p')

        self.db = pymysql.connect((host = commonObj.config.get('Mysql_db','host')

                        , port = int(commonObj.config.get('Mysql_db','port'))

                        , user = commonObj.config.get('Mysql_db','user')

                        , password = commonObj.config.get('Mysql_db','password')

                        , database = commonObj.config.get('Mysql_db','database'),charset = 'utf8')

    def query(self):

        SQL = """SELECT * FROM `HelloWorld`;"""

        try:

            #with语句打开建游标,可以不用写关闭游标语句cursor.close()

            with self.db.cursor() as Cur:

                list_col = []

                Cur.execute(SQL)

                #打印结果,fetchall()返回多行

                result = Cur.fetchall()

                desc = Cur.description

                #给结果DataFrame加上栏位名

                [list_col.append(field[0]) for field in desc]

                result.columns = list_col

        except Exception as e:

            #错误信息记录到日志中

            logging.error(e)

        finally:

            #必须要关闭连接

            self.db.close()

        print(result)

if __name__ == '__main__':

    #类的实例化

    t = common()

    t.run()

蟹蟹

相关文章

网友评论

    本文标题:python: pymysql模板

    本文链接:https://www.haomeiwen.com/subject/ueeazhtx.html