Skip to content

fernandojunior/python-sqlite-orm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7c79694 · Oct 10, 2018

History

58 Commits
Oct 10, 2018
Mar 26, 2016
Mar 26, 2016
Mar 28, 2016
Mar 30, 2016
Oct 10, 2018
Mar 28, 2016
Oct 10, 2018
Mar 28, 2016
Nov 27, 2016
Oct 10, 2018

Repository files navigation

python-sqlite-orm

A Python object relational mapper for SQLite.

Install

pip install sqlite-orm

Usage

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

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

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

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

    >>> from post import Post
    >>> Post.db = db  # see another approach in tests.py
  4. 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
  5. 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
  6. Commit all staged operations (save and update) to the database.

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

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

    >>> objects = Post.manager(db)
  9. 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'}
  10. Close the database without commit the changes

    >>> db.close()
  11. 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

CC0

The MIT License.

Copyright (c) 2014-2016 Fernando Felix do Nascimento Junior.