[go: up one dir, main page]

Skip to content

hakancelikdev/pydbm

Repository files navigation

Pydbm

Pydbm is a more pythonic way to use dbm.

It provides a fast, simple, and convenient facility for your small-scale Python projects that need a database.

pre-commit test build-docs publish-package-on-pypi

Pypi PyPI - Python Version Downloads License

Forks Issues Stars

Codecov Contributors Last Commit

Installation

Pydbm requires Python 3.8+ and can be easily installed using most common Python packaging tools. We recommend installing the latest stable release from PyPI with pip:

$ pip install pythonic-dbm

Pydbm is a database management system that uses the dbm standard library from Python to provide interfaces to Unix databases in a pythonic way. It is designed for small-scale projects and is a light database, meaning it is not as feature-rich or powerful as other types of databases, such as relational databases.

Pydbm is particularly useful for applications that need to store and retrieve simple data structures quickly, and is well-suited for developers working on small-scale projects that do not require the full functionality of a more complex database management system.

Pydbm is also an object-relational mapper (ORM), which allows developers to work with their database using objects and classes rather than raw commands. This can make it easier to manage and interact with the database in their application in a more pythonic way.

Here is a quick example;

from pydbm import DbmModel

__all__ = (
    "UserModel",
)


class UserModel(DbmModel):
    name: str
    surname: str
    age: int
    username: str

    class Config:
        unique_together = ("username", )

    def get_fullname(self) -> str:
        return f"{self.name} {self.surname}"


user = UserModel(name="Hakan", surname="Celik", age=26, username="hakancelik")
user.save()

hakan_user = UserModel.objects.get(id=user.id)

assert hakan_user.name == "Hakan"
assert hakan_user.surname == "Celik"
assert hakan_user.age == 26
assert hakan_user.username == "hakancelik"