c452f7519c6c2215782097ca480715eb3a0834ab
Quicker is a pythonic tool for querying databases.
Quicker wraps popular Python packages:
mysqlclientfor MySQL.psycopg2for PostgreSQL.- Python builtin
sqlitefor SQLite.
Connection parameters will passed to "backend" module as is.
Connection class
Connection is context manages and must be used with with keyword. Connection returns Query callable object. Query can be called in this ways:
with Connection(**config) as db:
db.exec("sql query here...")
db.query(sql query here...") # query is alias for exec()
# Query is callable and you can also do this:
with Connection(**config) as query:
query("sql query here...")
Query
Query cannot be called itself, you must use Connection to correctly initialise Query object.
Methods and properties:
query(),exec(). Execute SQL. There is You can use here this syntax:query('SELECT * FROM users WHERE id = %s', (15,)).commit(). Write changes into database.cursor. Call MySQLdb Cursor object methods directly.
Examples
SELECT
import json
from quicker import Connection
config = {
'provider': 'mysql',
'host': '127.0.0.1',
'port': 3306,
'user': 'myuser',
'database': 'mydb',
'password': 'example',
}
with Connection(**config) as query:
users = query("SELECT * FROM `users`")
print(json.dumps(users, indent=4))
users will presented as list of dicts:
[
{
'id': 1,
'name': 'test',
'email': 'noreply@localhost'
},
{
'id': 2,
'name': 'user1',
'email': 'my@example.com'
}
]
Change database
from quicker import Connection
with Connection(provider='mysql', read_default_file='~/.my.cnf') as db:
db.query("INSERT INTO users VALUE (3, 'user2', 'user2@example.org')")
Quicker by default make commit after closing context. Set option commit=False to disable automatic commit.
Description
Languages
Python
100%