Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

a tiny wrapper for mysqldb

Project Description

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

Installation
======
```
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)


``` python
class DatabaseConfig(BaseLurkerConfig):
host = 'localhost'
user = 'root'
passwd = ''
db = ''

connection = Connection(DbConfig)

```

* without Configuration objects

```python

connection = Connection().quick_connect("mysql_user", "mysql_passwd", "db_name", "host")

```

Sending Queries
--------
``` python
# 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.

``` python
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

``` python

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](http://twitter.com/emre_yilmaz)

Contributors
=============
Mirat Can Bayrak - [@mirat](http://twitter.com/mirat)

Projects/Scripts powered by lurker
====================================
- Database Copy: https://gist.github.com/4686232#file-db_copy-py

Release History

This version
History Node

0.1

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
lurker-0.1.tar.gz
(4.4 kB) Copy SHA256 Hash SHA256
Source None Feb 12, 2013

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers DreamHost DreamHost Log Hosting