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
Close
Hashes for utils_jinja_sqlite-0.0.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 35b5ec3c687a199c6ebd00578c84e9da32a88560b828ecd3749af39c1b072770 |
|
MD5 | 9d1520478080b03b0fcf59191f064ed5 |
|
BLAKE2b-256 | d273e8831d23d96c91f22d7167a3c6e00094ab772cab4884f06bbe5dd9466266 |