views:

76

answers:

3

I'm developing a web application that needs to interface with a MySQL database, and I can't seem to find any really good modules out there for Python.

I'm specifically looking for fast module, capable of handling hundreds of thousands of connections (and queries, all within a short period of time of each other), without an significant impact on the speed.

+1  A: 

MySQLdb is pretty much the only game in town for python mysql access.

Seth
Ahh, I didn't find that on Google (which is odd). Thanks.
Alexander
+2  A: 

I usually use SQLObject, but I haven't used it under highly stressful conditions, so I couldn't vouch for performance (having said that, I wouldn't speak against it).

To copy some demo code from another answer:

from sqlobject import *

# Replace this with the URI for your actual database
connection = connectionForURI('mysql://server:XXXX')
sqlhub.processConnection = connection

# This defines the columns for your database table. See SQLObject docs for how it
# does its conversions for class attributes <-> database columns (underscores to camel
# case, generally)

class Song(SQLObject):

    name = StringCol()
    artist = StringCol()
    album = StringCol()

# Create fake data for demo - this is not needed for the real thing
def MakeFakeDB():
    Song.createTable()
    s1 = Song(name="B Song",
              artist="Artist1",
              album="Album1")
    s2 = Song(name="A Song",
              artist="Artist2",
              album="Album2")

def Main():
    # This is an iterable, not a list
    all_songs = Song.select().orderBy(Song.q.name)

    # Do something by iterating over the song list...
detly
A: 

oursql is another option for python-mysql access. It is a much more complete wrapper of libmysqlclient than MySQLdb. Tends to be faster in my experience with lots of nice additional features.

Andrew