Common helper utility functions used when connecting to sqlite databases and binding SQL values from python variables.
Project description
Utils for Jinja & sqlite
Must setup an .env pointing to a database file DB_FILE
; otherwise, will default to test.db
.
Setup Jinja Environment to fetch via .sql file
Assumes a basic Jinja environment has been setup:
from jinja2 import Environment
assert isinstance(env, Environment)
Sync
Query the environment using sqlite3
,viz:
from utils_jinja_sqlite import get_rows, get_row
# base
params = dict(a="'hello world'")
sql_stmt = env.get_template("test.sql").render(params)
# get all
rows = get_rows(sql_stmt=sql_stmt)
type(rows) # generator
# get one
row = get_row(sql_stmt=sql_stmt) # gets only the first row
type(row) # dict
Async
Query the environment using a aiosqlite3
,viz:
from utils_jinja_sqlite import get_rows, get_row
import asyncio
# base
params = dict(a="'hello world'")
sql_stmt = env.get_template("test.sql").render(params)
# get all
rows = a_rows(sql_stmt=sql_stmt)
type(rows) # co-routine
rows_result = asyncio.run(rows)
type(rows_result) # generator
# get one
row = a_row(sql_stmt=sql_stmt)
type(row) # co-routine
row_result = asyncio.run(row)
type(row_result) # dict
Note that this will not work:
for first_stmt_row in get_rows(sql_stmt=sql_stmt1):
for second_stmt_row in get_rows(sql_stmt=sql_stmt2):
... # the first sql_stmt has not yet terminated
SQL string literal binder funcs
Instead of quoting a string literal can use a helper function
from utils_jinja_sqlite import quote_sql_string
params = dict(a=quote_sql_string(hello world))
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
Built Distribution
File details
Details for the file utils-jinja-sqlite-0.0.6.tar.gz
.
File metadata
- Download URL: utils-jinja-sqlite-0.0.6.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.0b3 CPython/3.10.5 Darwin/21.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4439f2ffc9c2ed12e1eb2aa263760a5580e51526b8ee30dfcb62c8ce35f9430c |
|
MD5 | a694501353ce552aa5b9c066cb061c8d |
|
BLAKE2b-256 | 9bd04143b9d2f03a90c80d9412a5e10a39ab1155ddc4bb367d4b34e779b19328 |
File details
Details for the file utils_jinja_sqlite-0.0.6-py3-none-any.whl
.
File metadata
- Download URL: utils_jinja_sqlite-0.0.6-py3-none-any.whl
- Upload date:
- Size: 4.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.0b3 CPython/3.10.5 Darwin/21.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 35b5ec3c687a199c6ebd00578c84e9da32a88560b828ecd3749af39c1b072770 |
|
MD5 | 9d1520478080b03b0fcf59191f064ed5 |
|
BLAKE2b-256 | d273e8831d23d96c91f22d7167a3c6e00094ab772cab4884f06bbe5dd9466266 |