Skip to content
forked from belda/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

jhuseinovic/odim

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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:[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"])

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%