Диджитализируй!

@t0digital · ai · Russian · active

Subscribers 28.6K Subscribers, last 30 days: 28.6K → 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 😁 👍 ❤
edited

Пишу тут свою мини-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 строк кода всего мы там ещё и свой веб-фреймворк бахнем, как без этого:) а ещё вчера на курс человек из Вьетнама залетел, получается, вышли на планетарный уровень 🚀

Views over time

05K10K15K4 Oct 10:3612 Nov 20:1215.2K4 Oct 10:36: 0 views12 Nov 20:12: 15,200 views
Snapshots we took after posting.
WhenViews
4 Oct 2026, 10:360
12 Nov 2026, 20:1215.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.