An open API service indexing awesome lists of open source software.

https://github.com/fbraem/sql-smith

An SQL query builder with zero dependencies and a fluent interface
https://github.com/fbraem/sql-smith

fluent python python3 query query-builder sql

Last synced: about 1 month ago
JSON representation

An SQL query builder with zero dependencies and a fluent interface

Awesome Lists containing this project

README

        

=========
sql-smith
=========

**sql-smith** is an SQL query builder with zero dependencies and a fluent interface.

The sentence above is, beside the name, a copy from the website of the PHP library
Latitude_, for the simple reason that this Python module is a port of Latitude.

Read the full `documentation `_.

Installation
************

.. code-block:: sh

$ pip install sql-smith

Quick Start
***********

QueryFactory is a factory to create a **SELECT**, **INSERT**, **UPDATE** or **DELETE** query.
Use the fluent interface of the queries to complete the query.

.. code-block:: python

from sql_smith import QueryFactory
from sql_smith.engine import CommonEngine
from sql_smith.functions import field

factory = QueryFactory(CommonEngine())
query = factory \
.select('id', 'username') \
.from_('users') \
.where(field('id').eq(5)) \
.compile()

print(query.sql) # SELECT "id", "username" FROM "users" WHERE "id" = ?
print(query.params) # (5)

When the query is ready, compile it. The return value of compile is a Query class instance
with two properties: sql and params. Use these properties to pass the query to a database.

.. code-block:: python

import sqlite3

db = sqlite3.connect('test.db')
cur = db.cursor()

for row in cur.execute(query.sql, query.params):
print(row)

.. _Latitude: https://latitude.shadowhand.com/