Core library for database querying tools based on templates
Project description
sqltemplate
Database query tool based on SQL templates
Development status
- Alpha
- API may be radically changed until first Beta release
- Not tested automatically yet
Roadmap
- 0.6 - drop django-sqltemplate compatibility layer
- 0.7 - automated tests, first beta release
- 0.8 - stable API
- 0.9,<1.0 - minor improvements without API changes, bugfixes
- 1.0 - first stable release
Introduction
SQL is a great and poweruful DSL, which is easeier in maintenance when you're working on complext queries (i.e. reporting queries). But the main problem of raw SQL is a commonly used "spaghetti" anti-pattern, when you're embedding/building SQLs directly in your code.
The solution comes from templating SQLs idea and sqltemplate
is a simple implementation of it.
Template system / database agnostic
The sqltemplate provides an abstraction layer for templating SQL
queries and working with query results. It requires an adapter to work.
For example - if you want to use sqltemplate together with Django
templates and database management, use django-sqltemplate adapter
directly.
Backward compatibilty with django-template
The 0.5.x branch contains a compatibility layer with django-template.
The layer provides Django adapter and necessary imports.
Building an adapter
Adapter must implement few callables required by sqltemplate core.
The adapter may be as a class instance or pure Python module providing
such functions. These functions are defined as:
load_template(template_name)
Must load template by name and return some kind of template object,
which will be passed to render_template() as an argument.
create_template_from_string(string)
Creates template object from provided string.
render_template(template, context)
Must render the template object using provided context (a dict).
do_query(sql, query_params, using=None)
Must execute a sql query with query_params applied.
Optional using argument specifies database connection identifier.
This may be any object dependent on how your adapter recognizes
particular connections. For Django adapter, for example, this is a
string with a connection name.
Dependencies
- sqlparse
- flatdict
License
BSD
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sqltemplate-0.5.4.post1.tar.gz.
File metadata
- Download URL: sqltemplate-0.5.4.post1.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.8.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
684bf0253a6b88b0e651394932872e213416b19cace161563a64b0b9c9c0ff52
|
|
| MD5 |
77c284c749fa904ff52cb2f21c772b57
|
|
| BLAKE2b-256 |
a67fa16b04b4dc379f91b2bc7852c6e17ac5eb8d71a21000db889b94b67addb8
|
File details
Details for the file sqltemplate-0.5.4.post1-py3-none-any.whl.
File metadata
- Download URL: sqltemplate-0.5.4.post1-py3-none-any.whl
- Upload date:
- Size: 10.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.8.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a95cbd9be8a5a3d1daa8383e424b0da946fb51d729a8c78800e9166d328dc6b7
|
|
| MD5 |
4fac20a7a15931a1ac28cdb8d22565e6
|
|
| BLAKE2b-256 |
f6d38f567956106790269d748947e7ab01e1dcea55dcc9c44c97ac1809130d2a
|