Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
a tiny wrapper for mySQLDB
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lurker
tests
.gitignore
README Update README
lurker.jpg
readme.markdown
requirements.txt
setup.py

readme.markdown

Lurker

Lurker is a tiny mysql wrapper built on the top of python-mySQLdb.

Installation

install via pip

pip install lurker

or easy_install if you like 90's.

easy_install lurker

or latest master branch

git clone git://github.com/emre/lurker.git
python setup.py install

Quick Tutorial

Connecting to the database

  • with Configuration objects. (This could be preferrable for seperating environments like DevConfig, ProdConfig, TestConfig)
class DatabaseConfig(BaseLurkerConfig):
    host = 'localhost'
    user = 'root'
    passwd = ''
    db = ''

connection = Connection(DatabaseConfig)
  • without Configuration objects
connection = Connection().quick_connect("mysql_user", "mysql_passwd", "db_name", "host")

Sending Queries

# returns last_id
connection.execute("INSERT INTO table_name (name) VALUES (%s)", ['Selami Sahin', ])

# returns row count
connection.execute("UPDATE table_name SET name = %s", ["Muhittin Bosat", ])

# returns a result set
all_people = connection.get_results("SELECT * FROM people")

# returns a row
one_people = connection.get_row("SELECT * FROM people WHERE id = 1")

# server-side cursor
for person in connection.iterate("SELECT * FROM people"):
    print person

Query Caching Support with Redis

  • In order to activate caching support, you need to set cache and cache_information variables in your config class.
from lurker.configuration import BaseLurkerConfig
from lurker.connection import Connection
from lurker.cache.backends.redis_backend import RedisBackend

class DbConfig(BaseLurkerConfig):
    host = 'localhost'
    user = 'root'
    passwd = 'passwd'
    db = 'db_name'
    cache = True
    cache_information = {
        'backend': RedisBackend,
        'args': (),
        'kwargs': {'host': 'localhost', 'port': 6379, 'db': 0},
    }
  • Usage in get_results and get_row
print connection.get_row("SELECT * FROM people WHERE id = %s", parameters=(1,), cache=30)
print connection.get_row("SELECT * FROM people WHERE id = %s", parameters=(1,), cache=30)

# output
# DEBUG:root:cache miss: SELECT * FROM people WHERE id = %s
# {'id': 1L, 'name': u'Emre Yilmaz'}
# DEBUG:root:cache hit: SELECT * FROM people WHERE id = %s
# {u'id': 1, u'name': u'Emre Yilmaz'}

Maintainer

Emre Yılmaz - @emre_yilmaz

Contributors

Mirat Can Bayrak - @mirat

Projects/Scripts powered by lurker

Something went wrong with that request. Please try again.