DB wrapper library
Project description
Overview
Simple library that makes working with databases more convenient in python.
notanorm can return objects instead of rows, protects you from injection, and
has a very simply driver interface.
Decidedly not an ORM, since ORM's are typically mega libraries with often confusing semantics.
Example:
from notanorm import SqliteDb
from notanorm import MysqlDb
fname = ":memory:"
# default options are
db = SqliteDb(fname)
# no special create support, just use a string
db.query("create table foo (bar text, iv integer primary key)")
# insert, select, update, and upsert are convenient and do the right thing
# preventing injection, normalizing across db types, etc.
db.insert(bar="hi", iv=1)
db.insert(bar="hi", iv=2)
db.insert(bar="ho", iv=3)
db.upsert(bar="ho", iv=4) # primary keys are required for upserts
db.select("foo", bar="hi")[0].bar # hi
db.select("foo", {"bar": "hi"})[0].iv # 1
db.count("foo", bar="hi") # 2
class Foo:
def __init__(self, bar=None, iv=None):
self.bar = bar
self.iv = iv
# create a class during select
db.register_class("foo", Foo)
obj = db.select_one("foo", bar="hi")
print(obj.bar) # hi
Database support
sqlite3 drivers come with python
To use mysql, pip install mysqlclient, or if that is not available, pip install pymysql
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 Distributions
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 notanorm-2.0.2-py3-none-any.whl.
File metadata
- Download URL: notanorm-2.0.2-py3-none-any.whl
- Upload date:
- Size: 15.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa7dac8dbd5807c4dbc1399bd6834581c325440695559045c111053432c99e2a
|
|
| MD5 |
ec14be66f1744348a5d1e2aaec4f4f95
|
|
| BLAKE2b-256 |
dd4fcd05f45fb3c28fff750b6f3589711f8573e82fddd3645cc97b17e491f17f
|