Skip to content
/ odim Public
forked from jhuseinovic/odim

Simple Python ORM/ODM specifically designed to be used with Pydantic and FastAPI

License

Notifications You must be signed in to change notification settings

Erjona1/odim

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

odim

Simple Python ORM/ODM specifically designed to be used with Pydantic and FastAPI

Simple syntax

In order to nicely work with databases you just create your Pydantic models. Odim does not care if it is MongoDB or SQL.

from pydantic import BaseModel

class MyModel(BaseModel):
    id : int
    field : str

    class Config:
        db_uri = "mongodb://user:pwd@10.0.0.1/db1"
        collection_name = "mymodel"

Then you can easily perform CRUD operations.

obj = MyModel(id=1, field="asdf 213")
await Odim(obj).save()

obj2 = await Odim(MyModel).get(123)

for x in await Odim(MyModel).find({"field" : "asdf 213"}):
  print(x)
  
await Odim(MyModel).count({"field" : 1})

In case you are using amazin FastAPI. We have our extended router, that gives you CRUD API endpoint

from odim.router import OdimRouter

router = OdimRouter()

router.mount_crud("/api/mymodel/", model=MyModel, tags=["mymodel"])

Or you can generate these API stubs with

router.generate("/api/mymodel/", model=MyModel, tags=["mymodel"])

About

Simple Python ORM/ODM specifically designed to be used with Pydantic and FastAPI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%