A easy、simple thread safe sql executor for Python with connection pool. Support MySQL, PostgreSQL, SQLite etc.
Project description
Usage Sample ''''''''''''
.. code::
import sqlexecutorx 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 sqlexecutorx import trans
@trans
def test_transaction():
insert_func(....)
update_func(....)
def test_transaction2():
with trans():
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
sqlexecutorx-1.8.2.tar.gz
(15.0 kB
view details)
File details
Details for the file sqlexecutorx-1.8.2.tar.gz
.
File metadata
- Download URL: sqlexecutorx-1.8.2.tar.gz
- Upload date:
- Size: 15.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28110dd0caedde7bfd53576721079d4da57cb026e58ef4d73fe80567a1445d6b |
|
MD5 | 3328338fa82f45239e9988ee81f7d354 |
|
BLAKE2b-256 | ffbbcbaa63ea5ca87bceba0dc298e924f8a893a2ff0a00d10701300ff7efbf52 |