- 论坛徽章:
- 1
|
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
复制代码 |
|