Skip to main content

A tiny ORM for SQLite

Project description

tiny-orm

A tiny ORM for SQLite.

Install

pip install tiny-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 tiny_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 tiny_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

The MIT License.


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tiny-orm-0.0.1.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

tiny_orm-0.0.1-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file tiny-orm-0.0.1.tar.gz.

File metadata

  • Download URL: tiny-orm-0.0.1.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.3

File hashes

Hashes for tiny-orm-0.0.1.tar.gz
Algorithm Hash digest
SHA256 4047fda1e3958195a73678a88d52a6aa94e9e2c22b579a085cd8456e4e983d25
MD5 9f3cb6612f90de7faffc393c71f9fc7e
BLAKE2b-256 a0423e2443406459ff707955ac388752b2100e2852354b5443f95da30f3cb339

See more details on using hashes here.

File details

Details for the file tiny_orm-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: tiny_orm-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 4.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.3

File hashes

Hashes for tiny_orm-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b930a81fd3f0147be4adc6b49706e40daab5e10c785c0cea5af273c34450091d
MD5 2a66660302c991b71361c4e3b6b4281e
BLAKE2b-256 bd5b866f10bce787f3e0be9c90f41ea5506c5d429d9b3b36e9c28a3956c7a6b7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page