Skip to main content

A simple ORM library

Project description

abarorm

abarorm is a lightweight and easy-to-use Object-Relational Mapping (ORM) library for SQLite databases in Python. It aims to provide a simple and intuitive interface for managing database models and interactions.

Features

  • Define models using Python classes
  • Automatically handle database schema creation and management
  • Support for basic CRUD operations
  • Foreign key relationships
  • Custom field types with validation and constraints

Installation

You can install abarorm from PyPI using pip:

pip install abarorm

Basic Usage

Here’s a quick overview of how to use abarorm to define models and interact with an SQLite database.

Defining Models

Create a new Python file (e.g., models.py) and define your models by inheriting from SQLiteModel:

from abarorm import SQLiteModel
from abarorm.fields import CharField, DateTimeField, ForeignKey

class Category(SQLiteModel):
    table_name = 'categories'
    title = CharField(max_length=200, unique=True)

class Post(SQLiteModel):
    table_name = 'posts'
    title = CharField(max_length=100, unique=True)
    create_time = DateTimeField(auto_now=True)
    category = ForeignKey(Category)

Creating Tables

Create the tables in the database by calling the create_table method on your model classes:

if __name__ == "__main__":
    Category.create_table()
    Post.create_table()

Adding Data

You can add new records to the database using the create method:

# Adding a new category
Category.create(title='Movies')

# Adding a new post
category = Category.get(id=1)  # Fetch the category with ID 1
if category:
    Post.create(title='Godfather', category=category.id)

Querying Data

Retrieve all records or filter records based on criteria:

# Retrieve all posts
all_posts = Post.all()
print("All Posts:", [(post.title, post.category) for post in all_posts])

# Retrieve a specific post
post_data = Post.get(id=1)
if post_data:
    print("Post with ID 1:", post_data.title, post_data.category)

# Filter posts by category
filtered_posts = Post.filter(category=category.id)
print("Filtered Posts:", [(post.title, post.category) for post in filtered_posts])

Updating Records

Update existing records with the update method:

Update existing records with the update method:

Deleting Records

Delete records using the delete method:

Post.delete(1)

Contributing

Contributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request on github.

License

This project is licensed under the MIT License - see the License file for details.

Acknowledgements

  • Python: The language used for this project
  • SQLite: The database used for this project
  • setuptools: The tool used for packaging and distributing the library

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

abarorm-0.7.3.tar.gz (4.9 kB view hashes)

Uploaded Source

Built Distribution

abarorm-0.7.3-py3-none-any.whl (5.4 kB view hashes)

Uploaded Python 3

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