[Tutor] MySQL Connection Function

Python python at venix.com
Wed Jun 22 01:13:43 CEST 2005

As a newbie developer, the easiest way for me to connect to MySQL is to
> just copy & paste the connection commands into each funtion I write. 
> However, I know that's far from ideal, and consumes more time than its
> worth.  I would like to create a MySQL connection function that I can just
> call up whenever I need it from within an other function.

I like to use the following style of code.  Since there will be
passwords, the connection strings should be somewhat protected.  Put
them in a separate file that can be controlled.  Here's my sample code.
#! /usr/bin/python
# sqlconnect.py
import MySQLdb as SQLdb

db_parms = {
    'regular': {
        'host': 'localhost',
    'premium': {
        'db': 'SGSG02',
    "super": {
        'host': 'localhost',
        'unix_socket': '/var/lib/superdb/mysql.sock',

def connect( parm_name):
    parms = db_parms[parm_name]
    return SQLdb.connect( **parms)

Use a dictionary to save the connect parameters.  Different users and
circumstances can require different parameters.  To use this code

import sqlconnect as sql
conn = sql.connect('regular')

# then get a cursor so that you can do something to the database
curs = conn.Cursor()
results = curs.fetchall()

Your example code seems to view getting a connection and a cursor as
closely related.  Typically, a connection is kept for the life of the
application process and cursors are created, used, and closed as needed.

Lloyd Kvam
Venix Corp

More information about the Tutor mailing list