linustd 发表于 2014-06-30 18:54

CU上大神挺多,贴几段代码给大神们评审一下

CU上大神挺多,贴几段代码给大神们评审一下。
因为大神们见多识广,目的就是把这几段虽然简单,但是却很基础、使用很频繁的代码给优化到极致,性能达到最好:
第一段:一个数据库操作封装,目的就是一个方法完成所有数据库相关的操作。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-


import mysql.connector
import mysql.connector.pooling
import mysql.connector.cursor


class Db(object):

    def __init__(self, config, pool_name=None, pool_size=5):
      self.pool = mysql.connector.pooling.MySQLConnectionPool(
            pool_name=pool_name,
            pool_size=pool_size,
            **config)

    def get_connection(self):
      return self.pool.get_connection()

    def execute(self, sql, params=None):
      conn = self.get_connection()
      cursor = conn.cursor(buffered=True, cursor_class=MySQLDictCursor)
      data_set = []
      for result in cursor.execute(sql, params, multi=True):
            if result.with_rows:
                data_set.append(result.fetchall())
            else:
                data_set.append(None)
      conn.commit()
      cursor.close()
      conn.close()
      return data_set


class MySQLDictCursor(mysql.connector.cursor.MySQLCursor):

    def _row_to_python(self, row_data, desc=None):
      row = super(MySQLDictCursor, self)._row_to_python(row_data, desc)
      if row:
            return dict(zip(self.column_names, row))
      return None

qxhgd 发表于 2014-06-30 21:33

我是来学习的!

pitonas 发表于 2014-07-01 15:42

发觉代码给优化到极致了啊。
学习。
页: [1]
查看完整版本: CU上大神挺多,贴几段代码给大神们评审一下