Пишу тут свою мини-ORM в курсе для демонстрации возможностей питона и того, что своя ORM — это не космически сложно (не обязательно космически сложно). В процессе продумывания вариантов, понял, что сейчас можно вообще красиво делать и просто. Типы полей в БД — на type hints, детали (ограничения длины строк, первичные ключи) — через typing.Annotated. Без метаклассов, без дескрипторов, без __init_subclass__ , без наследования моделей от какого-то базового класса модели. from dataclasses import dataclass from typing import Annotated, ClassVar from orm import ( Identity, MaxLength, PrimaryKey, ) @dataclass(kw_only=True) class User: user_id: Annotated[ int, Identity(), PrimaryKey(), ] name: str email: Annotated[str, MaxLength(255),] age: int country: Annotated[str | None, MaxLength(2),] = None __table__: ClassVar[str] = "users" и использование в духе: users = ( db.query(User) .filter(age__gte=18, country="RU") .order_by("-age", "name") .limit(10) .all() ) ляпотааа реализация ~800 строк кода всего мы там ещё и свой веб-фреймворк бахнем, как без этого:) а ещё вчера на курс человек из Вьетнама залетел, получается, вышли на планетарный уровень 🚀
Диджитализируй!
Subscribers
28.6K
+0 24h
Reach per post (ERR)
56.0%16K avg views
Posting
4.9/week
last 3 days ago
Reactions per 1K views
14.5
😁 👍 ❤
Views over time
| When | Views |
|---|---|
| 4 Oct 2026, 10:36 | 0 |
| 12 Nov 2026, 20:12 | 15.2K |
Who shared this post
Posts in other channels we index that link to this one. (Forwards with a hidden source can't be traced.)
Nobody yet.