如何简化MySQLdb连接被多次调用

时间:2014-06-18 01:04:40

标签: python mysql reusability

我有以下MySQL连接:

import MySQLdb as mdb
rbpdb = mdb.connect(host='db01.myhost.co.nl,
                        user='pdbois',
                        passwd='triplex',
                        db='myxxx')

在编码过程中,我会在很多功能中多次重复使用此连接。 用于读取,创建和更新数据库。

无需多次调用上述代码段,实现该方法的最佳方法是什么? 我们可以把它作为类或函数放在单独的文件中吗?如果是这样,我们怎么称呼呢?

1 个答案:

答案 0 :(得分:1)

对我有用的东西只是一个单独的.py文件中的模块,然后一旦想在任何脚本中使用MySQL连接就导入它。

在此文件中,您有连接的定义 - 例如。 MySQLdb或/和任何其他MySQL连接器。 我也使用mysql.connector。

def connection(host, db, user, pass):
    try:
        import mysql.connector
        connection_db = mysql.connector.connect(
            user=user, 
            passwd=pass, 
            db=db,  
            host=host
        )
        return connection_db
    except:
        return None # or define here any other connection eg MySQLdb

然后你可以为每个DML操作定义一个函数,例如

def insert(host, db, user, pass, sql):
    connection_db = connection(host, db, user, pass)
    cursor = connection_db.cursor()
    cursor.execute(sql)
    connection_db.commit()
    cursor.close()
    connection_db.close()

最后,在你的任何脚本中添加:

就足够了
import xxxxx.py
sql = """ INSERT INTO tbl (col1, col2) VALUES ('m','n'); """
var = xxxxx.insert(host, db, user, pass, sql)