Simple Python ORM/ODM specifically designed to be used with Pydantic and FastAPI
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:[email protected]/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"])