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!

An ultra simple wrapper for Python MySQLdb with very basic functionality

Project Description

An ultra simplistic wrapper for Python MySQLdb with very basic functionality

http://nadh.in/code/simplemysql

License: GPL v2

Installation

pip install simplemysql

Usage

from simplemysql import SimpleMysql

db = SimpleMysql(
                host="localhost",
                db="mydatabase",
                user="username",
                passwd="password"
)

# insert a record to the *books* table
db.insert("books", {"type": "paperback", "name": "Time Machine", "price": 5.55, year: "1997"})

book = db.getOne("books", ["name"], ["year = 1997"])

print "The book's name is " + book.name

Query methods

insert(), update(), delete(), getOne(), getAll(), query()

insert(table, record{})

Inserts a single record into a table.

db.insert("food", {"type": "fruit", "name": "Apple", "color": "red"})
db.insert("books", {"type": "paperback", "name": "Time Machine", "price": 5.55})

update(table, row{}, condition[])

Update one more or rows based on a condition (or no condition).

# update all rows
db.update("books", {"discount": 0})

# update rows based on a simple hardcoded condition
db.update("books",
        {"discount": 10},
        ["id=1"]
)

# update rows based on a parametrized condition
db.update("books",
        {"discount": 10},
        ("id=%s AND year=%s", [id, year])
)

insertOrUpdate(table, row{}, key)

Insert a new row, or update if there is a primary key conflict.

# insert a book with id 123. if it already exists, update values
db.insert("books",
                {"id": 123, type": "paperback", "name": "Time Machine", "price": 5.55},
                "id"
)

getOne(table, fields[], condition[], order[], limit[])

getAll(table, fields[], condition[], order[], limit[])

Get a single record or multiple records from a table given a condition (or no condition). The resultant rows are returned as namedtuples. getOne() returns a single namedtuple, and getAll() returns a list of namedtuples.

book = db.getOne("books", ["id", "name"])

# get a row based on a simple hardcoded condition
book = db.getOne("books", ["name", "year"], ("id=1"))

# get a row based on a simple hardcoded condition
book = db.getOne("books", ["name", "year"], ("id=1"))

# get multiple rows based on a parametrized condition
books = db.getAll("books",
        ["id", "name"],
        ("year > %s and price < 15", [year, 12.99])
)

# get multiple rows based on a parametrized condition with an order and limit specified
books = db.getAll("books",
        ["id", "name", "year"],
        ("year > %s and price < 15", [year, 12.99]),
        ["year", "DESC"],       # ORDER BY year DESC
        [0, 10]                 # LIMIT 0, 10
)

lastId()

Get the last insert id

delete(table, fields[], condition[], order[], limit[])

Delete one or more records based on a condition (or no condition)

# delete all rows
db.delete("books")

# delete rows based on a condition
db.delete("books", ("price > %s AND year < %s", [25, 1999]))

query(table)

Run a raw SQL query. The MySQLdb cursor is returned.

db.query("DELETE FROM books WHERE year > 2005")
Release History

Release History

This version
History Node

1.25

History Node

1.2

History Node

1.1

History Node

1.0

History Node

0.9

History Node

0.8

History Node

0.7

History Node

0.6

History Node

0.5

History Node

0.4

History Node

0.3

History Node

0.2

History Node

0.1

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
simplemysql-1.25.tar.gz (4.5 kB) Copy SHA256 Checksum SHA256 Source Dec 19, 2016

Supported By

WebFaction WebFaction Technical Writing 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 Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting