Skip to content

veffhz/simple_orm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

simple_orm

Простая экспериментальная ORM работы с sqlite. Функциональность:

  • создание/удаление таблиц;
  • insert/update
  • select с указанием необходимых столбцов;
  • обработка базовых ошибок (нет таблицы, нет столбца, не указано значение у обязательного столбца);
  • поддержка foreign key и автоджоин таблиц, на которые есть fk.

Пример описания и создания сущности

Пользовательский класс наследует класс Base библиотеки

class User(Base):
    __tablename__ = 'users'
    id = ('int', 'pk')
    username = ('char(256)', 'required')

Создание объекта и вызов метода save создает таблицу, если ее нет, и создает новую запись. В конструктор необходима передача объекта conn, получаемого по вызову sqlite3.connect.

user = User(connection=conn, id=1, username='doe')
user.save()

Методы АПИ

Работа с апи осуществляется вызовом методов на объекте сущности.

  • select_all()

Выборка всех записей. При наличии foreign key делает join другой таблицы.

  • select_by(condition='AND', **args)

Выборка записей по условиям. Поддерживает передачу предиката and или or.

  • create_table(table, columns)

Явное создание таблицы.

  • drop_table()

Удаление таблицы сущности.

  • update_all(**args)

Обновление указанных полей всех записей.

  • update_by_id(id, **args)

Обновление указанных полей по идентификатору записи.

  • delete_by(id=4)

Удаление записи по условию.

  • delete_all()

Удаление всех записей.

Пример

Пример работы можно найти в файле test_orm.py

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages