Skip to main content

Provides an automatic DAO layer for your models

Project description

DAOModel

An instant CRUD layer for your Python models.

DAOModel is a powerful yet beginner-friendly database toolkit built on top of industry-standard libraries (SQLModel, Pydantic, and SQLAlchemy). It provides everything you need to get your database-backed project up and running quickly.

  • Eliminate repetitive work by auto-creating your DAOs
  • Make your code more straightforward and readable
  • Write less code, which means:
    • having a usable product sooner
    • reduced testing burden
    • minimal potential bugs

Purpose

Assembled from a collection of duplicated logic found across several projects, this library serves as a starting point for your Python project. Though great for complex apps, it's also a great starting point for simple projects. DAOModel will benefit new developers the most by providing a straight forward start to writing code.

A goal of my libraries is to remove upfront hurdles to facilitate learning along the way. Following the Guides, anyone can get started without knowledge of relational databases or SQLAlchemy. If any documentation or design is unclear, please submit a ticket so that I can be sure that even beginners are able to benefit from this project.

Features

  • Expands upon SQLModel; works seamlessly with existing models
  • SQLAlchemy under the hood; keep existing logic while using DAOModel functions for new code
  • A proven, reliable data layer
  • Advanced search capabilities without raw SQL
  • Quality-of-life additions

Looking for more? Check out my other projects on GitHub

Installation

Python 3.10+ is required.

SQLModel, SQLAlchemy, and all other dependencies will be installed with the pip cmd:

pip install DAOModel

or, given that this project is a development tool, you will likely add DAOModel to requirements.txt or pyproject.toml.

Next, move on to the Getting Started page to begin developing your DAOModels.

Caveats

Database Support

Most testing has been completed using SQLite, though since SQLModel/SQLAlchemy support other database solutions, DAOModel is expected to as well.

Speaking of SQLite, this library configures Foreign Key constraints to be enforced by default in SQLite.

Table Names

Table names are configured to be snake_case which differs from SQLModel. See Table Naming for more information.

Unsupported Functionality

Not all functionality will work as intended through DAOModel. If something isn't supported, submit a ticket or pull request. And remember that you may always use what you can and then override the code or use the query method in DAO to do the rest. It should still save you a lot of lines of code.

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

daomodel-0.9.2b0.tar.gz (52.8 kB view details)

Uploaded Source

Built Distribution

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

daomodel-0.9.2b0-py3-none-any.whl (32.4 kB view details)

Uploaded Python 3

File details

Details for the file daomodel-0.9.2b0.tar.gz.

File metadata

  • Download URL: daomodel-0.9.2b0.tar.gz
  • Upload date:
  • Size: 52.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.27.0 CPython/3.14.5 Linux/6.17.0-1013-azure

File hashes

Hashes for daomodel-0.9.2b0.tar.gz
Algorithm Hash digest
SHA256 9e3d2f0b1a2374c6d4cc914cee9d23e9390f12aeaa1d42bfaf8b8579e1b65c8a
MD5 b0f218d9a49085d95b3dc5aafa7012f8
BLAKE2b-256 4b5cda11161b4f0bb1d20aca001a2aa01cc922c8993aaecf49a9c1615ca53df1

See more details on using hashes here.

File details

Details for the file daomodel-0.9.2b0-py3-none-any.whl.

File metadata

  • Download URL: daomodel-0.9.2b0-py3-none-any.whl
  • Upload date:
  • Size: 32.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.27.0 CPython/3.14.5 Linux/6.17.0-1013-azure

File hashes

Hashes for daomodel-0.9.2b0-py3-none-any.whl
Algorithm Hash digest
SHA256 5020a14335431cef1711af8dcd36dc90982f88e54fa6ecf9a45f0dc2c2928e2a
MD5 33faed24f32c4d2e1bf27dcf5eeef4b8
BLAKE2b-256 3c49fbe99fb1f2337073c5d24349454d15fa0dadfcfe551c2b75467debbe5a45

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