A simple thread safe sql executor for Python with connection pool. Support MySQL, PostgreSQL, SQLite etc.
Project description
Usage Sample ''''''''''''
.. code::
import executor as db
if __name__ == '__main__':
db.init('test.db', driver='sqlite3', debug=True)
# or
db.init("postgres://user:password@127.0.0.1:5432/testdb", driver='psycopg2', pool_size=5, debug=True)
# or
db.init(host='127.0.0.1', port='5432', user='xxx', password='xxx', database='testdb', driver='psycopg2')
# if driver is 'pymysql' or 'mysql.connector' of MySQL, the select_key is 'SELECT LAST_INSERT_ID()'
select_key = "SELECT currval('person_id_seq')"
id = db.save(select_key, 'INSERT INTO person(name, age) VALUES(%s,%s)', 'wangwu', 38)
persons = db.select('select id, name, age from person')
# result:
# (3, 'zhangsan', 15)
# (4, 'lisi', 26)
# (5, 'wangwu', 38)
# (6, 'zhaoliu', 45)
persons = db.select_one('select id, name, age from person where name = %s', 'zhangsan')
# result:
# (3, 'zhangsan', 15)
args = [
('李四', 55),
('王五', 35),
]
db.batch_execute('INSERT INTO person(name,age) VALUES(%s,%s)', *args)
db.close()
Transaction ''''''''''''
.. code::
from executor import with_transaction, transaction
@with_transaction
def test_transaction():
insert_func(....)
update_func(....)
def test_transaction2():
with transaction():
insert_func(....)
update_func(....)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
sqlx-executor-1.1.6.tar.gz
(12.3 kB
view details)
File details
Details for the file sqlx-executor-1.1.6.tar.gz
.
File metadata
- Download URL: sqlx-executor-1.1.6.tar.gz
- Upload date:
- Size: 12.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 475a11ec758d3df2065c4172847a9511289c950c4f216f5d6035b3a6d267babe |
|
MD5 | 2859fb071592c38ff47a820b3f82814d |
|
BLAKE2b-256 | 806d1cac4583a90778664edc47d4140139d95ecc799550345a132c029f494ab5 |