Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sqltemplate-0.5.4.post1.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sqltemplate-0.5.4.post1-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

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

Hashes for sqltemplate-0.5.4.post1.tar.gz
Algorithm Hash digest
SHA256 684bf0253a6b88b0e651394932872e213416b19cace161563a64b0b9c9c0ff52
MD5 77c284c749fa904ff52cb2f21c772b57
BLAKE2b-256 a67fa16b04b4dc379f91b2bc7852c6e17ac5eb8d71a21000db889b94b67addb8

See more details on using hashes here.

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

Hashes for sqltemplate-0.5.4.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 a95cbd9be8a5a3d1daa8383e424b0da946fb51d729a8c78800e9166d328dc6b7
MD5 4fac20a7a15931a1ac28cdb8d22565e6
BLAKE2b-256 f6d38f567956106790269d748947e7ab01e1dcea55dcc9c44c97ac1809130d2a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page