Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mini ORM

🇬🇧 English | 🇷🇺 Русский

A small Python ORM built on top of SQLite from scratch: metaclasses, field descriptors, and a query builder.

Features

  • Define models as plain classes (class Student(Model): ...)
  • IntegerField, TextField with primary_key / nullable support
  • Auto table creation based on model structure (Model.create_table())
  • CRUD operations: save(), delete()
  • Filtered queries: Model.select().where(...).execute()

Tech stack

  • Python 3
  • sqlite3 (standard library)

Run

python main.py

Demonstrates table creation, inserting records, filtered selects, updating, and deleting — all on an in-memory database (:memory:).

Example

class Student(Model):
    id = IntegerField(primary_key=True)
    name = TextField(nullable=False)
    age = IntegerField()
    faculty = TextField()

Database.connect(":memory:")
Student.create_table()

student = Student(name="John Doe", age=20, faculty="CS")
student.save()

cs_students = Student.select().where(faculty="CS").execute()

License

MIT

About

A tiny Python ORM built from scratch (metaclasses, field descriptors, query builder) on top of SQLite.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages