SmartSQL - lightweight sql builder.
Project description
SmartSQL - lightweight Python sql builder, follows the KISS principle. Supports Python2 and Python3.
You can use SmartSQL separatelly, or with Django, or with super-lightweight Ascetic ORM, or with super-lightweight datamapper Openorm (miror) etc.
Home Page: https://bitbucket.org/emacsway/sqlbuilder
Browse source code (canonical repo): https://bitbucket.org/emacsway/sqlbuilder/src
GitHub mirror: https://github.com/emacsway/sqlbuilder
Get source code (canonical repo): hg clone https://bitbucket.org/emacsway/sqlbuilder
Get source code (mirror): git clone https://github.com/emacsway/sqlbuilder.git
LICENSE:
License is BSD
Quick start
>>> from sqlbuilder.smartsql import Q, T, compile >>> compile(Q().tables( ... (T.book & T.author).on(T.book.author_id == T.author.id) ... ).columns( ... T.book.name, T.author.first_name, T.author.last_name ... ).where( ... (T.author.first_name != 'Tom') & (T.author.last_name != 'Smith') ... )[20:30]) ('SELECT "book"."name", "author"."first_name", "author"."last_name" FROM "book" INNER JOIN "author" ON ("book"."author_id" = "author"."id") WHERE "author"."first_name" <> %s AND "author"."last_name" <> %s LIMIT %s OFFSET %s', ['Tom', 'Smith', 10, 20])
Django integration
Simple add “django_sqlbuilder” to your INSTALLED_APPS.
>>> object_list = Book.s.q.tables( ... (Book.s & Author.s).on(Book.s.author == Author.s.pk) ... ).where( ... (Author.s.first_name != 'James') & (Author.s.last_name != 'Joyce') ... )[:10]
More info
See docs on https://sqlbuilder.readthedocs.io/
P.S.: See also article about SQLBuilder in English and in Russian.
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.