Use YAML files to strip SQL statements from the program, and implement dynamic SQL through Jinja2.
Project description
Use YAML files to strip SQL statements from the program, and implement dynamic SQL through Jinja2.
Specify sql folder
from sql_splitter import SqlLoader
# Configure the path of the sql folder
SqlLoader.SQL_FILE_PATH = "/Users/kela/Program/open-sources/sql-splitter/sql_splitter/example/sql"
loader = SqlLoader()
Load all sql statements
# All sql statements are loaded while the application is running
loader.preload_all_sqls()
print(f'All sqls: {loader.sqls}')
Gets the specified sql statement
# Obtain sql based on sql_id
sql = loader.get(
"user.index.query_user_info", options={}
)
print(f"current sql: {sql}")
Write sql statements sql/user/index.yml
SELECT
user.id,
user.account_id,
user.account_name,
user.user_name,
user.password,
user.phone,
user.is_delete,
user.enable_flag,
user.register_datetime,
group.name AS group_name
FROM user
JOIN group ON user.group_id = group.id
WHERE user.id = :user_id
Generate dynamic sql with the option parameter
SELECT
user.id,
user.account_id,
user.account_name,
user.user_name,
user.password,
user.phone,
user.is_delete,
user.enable_flag,
user.register_datetime,
group.name AS group_name
FROM user
JOIN group ON user.group_id = group.id
{% if user_id > 0 %}
WHERE user.id = :user_id
{% endif %}
# Obtain sql based on sql_id with option
# Dynamic sql requires passing in parameters to be filtered
sql = loader.get(
"user.index.query_user_info",
options={
'user_id': 1
}
)
print(f"current sql: {sql}")
# 生成的sql语句
"""
SELECT
user.id,
user.account_id,
user.account_name,
user.user_name,
user.password,
user.phone,
user.is_delete,
user.enable_flag,
user.register_datetime,
group.name AS group_name
FROM user
JOIN group ON user.group_id = group.id
WHERE user.id = :user_id
"""
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
sql-spliter-0.0.2.tar.gz
(3.7 kB
view details)
File details
Details for the file sql-spliter-0.0.2.tar.gz.
File metadata
- Download URL: sql-spliter-0.0.2.tar.gz
- Upload date:
- Size: 3.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a951ebe708cca33fbf8e541ce21ce472be53645e966f04fc7fea3d4b8d8d680
|
|
| MD5 |
2d8afe25821a1d17f023bb7e074683c5
|
|
| BLAKE2b-256 |
1bcb8de9237fccdf2436d1521a361630ce8a13ecfdf31cfef0d2f6c78953bacd
|