美文网首页测试Inbox
Python3:pymysql数据库

Python3:pymysql数据库

作者: 五娃儿 | 来源:发表于2018-03-20 15:17 被阅读22次

pymysql数据库连接

Note:PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。

  • 知识点
    1.连接数据
    2.创建游标
    3.查询数据库
    4.更改数据库、提交
    5.关闭连接

pymysql查询数据库

样例:pymysqlOpreation.p

"""
创建数据库连接
"""

class pymysqlopreations:
    def __init__(self, host, port, user, password, db, charset='utf8', link_type=0):
        """
        link_type = 0 时,数据库返回结果为元组模式
        当link_type !=0时,数据库返回结果为字典模式
        :param host:
        :param port:
        :param user:
        :param password:
        :param db:
        :param charset:
        :param link_type:
        """
        self.host = host
        self.port = port
        self.user = user
        self.password = password
        self.db = db
        self.charset = charset

        try:
            self.conn = pymysql.connect(host=self.host, port=self.port, user=self.user, password=self.password,
                                        db=self.db, charset=self.charset)
            if link_type == 1:
                self.cur = self.conn.cursor(pymysql.cursors.DictCursor)
            else:
                self.cur = self.conn.cursor()

        except Exception:
            mylogger.info('Mysql数据库连接失败!')

    def select_one(self, params):
        """
        查询一条数据
        :param params:
        :return:
        """
        try:
            self.cur.execute(params)
            result = self.cur.fetchone()
            result = {'code': '0000', 'message': '执行单条查询操作成功', 'data': result}
        except:
            result = {'code': '9999', 'message': '执行单条查询异常', 'data': []}
            mylogger.info('Mysql查询失败!')
        return result

    def select_all(self, params):
        """
        查询所有内容
        :param params:
        :return:
        """
        try:
            row = self.cur.execute(params)
            if row > 0:
                self.cur.scroll(0, mode='absolute')
                results = self.cur.fetchall()
                result = {'code': '0000', 'message': '执行查询所有数据成功', 'data': results}
            else:
                result = {'code': '0000', 'message': '执行查询所有数据成功', 'data': []}
        except:
            result = {'code': '9999', 'message': '执行查询所有数据异常', 'data': []}
            mylogger.info('Mysql查询多条数据失败!')
        return result

    def opt_one(self, params):
        """
        操作单条数据
        :param params:
        :return:
        """
        try:
            row = self.cur.execute(params)
            self.conn.commit()
            result = {'code': '0000', 'message': '执行单条数据成功', 'data': int(row)}
        except:
            result = {'code': '9999', 'message': '执行单条数据失败', 'data': []}
            mylogger.info('Mysql操作单条数据失败')
        return result

    def opt_many(self, stmt, data):
        """
        多条数据
        :param stmt:
        :param data:
        :return:
        """
        try:
            row = self.cur.executemany(stmt, data)
            self.conn.commit()
            result = {'code': '0000', 'message': '插入多条数据成功', 'data': int(row)}
        except:
            result = {'code': '9999', 'message': '插入多条数据失败', 'data': []}
            mylogger.info('Mysql 插入多条数据失败')
        return result

    def __del__(self):
        if self.cur != None:
            self.cur.close()
        if self.conn != None:
            self.conn.close()


if __name__ == "__main__":
    conn = pymysqlopreations(host='127.0.0.1', port=3306, user='root', password='root', db='insurance',
                             link_type=1)
    sql = " SELECT * FROM `interface_detail`"
    resutl = conn.select_one(sql)
    print(resutl)
    sql_demo = """ INSERT INTO `interface_detail`(NAME,detail,param,check_value,exe_env,LEVEL,require_login) VALUES('xx','xx','xx','id=10',0,0,0)"""
    roe = conn.opt_one(sql_demo)
    print(roe)
    results = conn.select_all(sql)
    print(results)
    updatestmt = ''' update `interface_detail` set LEVEL = %s where interface_id =%s'''
    data = [(5,18)]
    conn.opt_many(updatestmt,data)
    results = conn.select_all(sql)
    print(results)


相关文章

网友评论

    本文标题:Python3:pymysql数据库

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