🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more

tiny-orm

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tiny-orm

A tiny ORM for SQLite

0.0.1
Maintainers
1

tiny-orm

A tiny ORM for SQLite.

Install

pip install tiny-orm

Usage

Following a basic tutorial to demonstrate how to use the ORM.

  • Define a Post model in a post.py file.

    # post.py
    from tiny_orm import Model
    
    class Post(Model):
    
        text = str  # other datatypes: int, float
    
        def __init__(self, text):
            self.text = text
    
    
  • Import Database to create a data access object.

    >>> from tiny_orm import Database
    >>> db = Database('db.sqlite')  # indicating a database file.
    
  • Import the Post model and link it to the database.

    >>> from post import Post
    >>> Post.db = db  # see another approach in tests.py
    
  • Create a post and save it in the staging area (without commit) of database.

    >>> post = Post('Hello World').save()
    >>> print(post.id)  # auto generated id
    1
    
  • Change the hello world post and update it in the database.

    >>> post = Post.manager().get(id=1)
    >>> post.text = 'Hello Mundo'
    >>> post.update()
    >>> post.text
    Hello Mundo
    
  • Commit all staged operations (save and update) to the database.

    >>> db.commit()
    
  • Delete the object and commit.

    >>> post.delete()
    >>> db.commit()
    
  • Create a manager that can perform CRUD operations in the database.

    >>> objects = Post.manager(db)
    
  • Save and get a post.

    >>> objects.save(Post('Hello', 'World'))
    >>> objects.get(2)  # get by id from the staging area
    {'text': 'World', 'id': 2, 'title': 'Hello'}
    
  • Close the database without commit the changes

    >>> db.close()
    
  • Get all posts from database.

    >>> list(objects.all())  # return a "empty" generator
    []
    

Linter

Check code lint:

pip install pylint
pylint orm.py

Contributing

See CONTRIBUTING.

License

The MIT License.

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts