PonyORM: раскрываем секреты, как написать свой транслятор с Python на SQLБазы данных и ORM

Доклад отклонён
Александр Козловский
PonyORM

Автор и разработчик PonyORM, участвовал в ряде веб-стартапов, использующих различные веб-фреймворки и ORM, более 10 лет преподавал курс "Базы данных" в СПбГУАП.

E-mail: alexander.kozlovsky@gmail.com
Александр Тищенко
PonyORM

Студент СПбГУАП, PonyORM core developer.

Тезисы

Объектно-реляционный маппер PonyORM не просто "механически" переводит выражения с Питона на SQL, а пытается "понять смысл" выражения на Python, и затем формулирует аналогичную по смыслу конструкцию на языке SQL. В недавнем релизе PonyORM возможности языка запросов существенно расширились - добавилась возможность инлайнить в SQL-запрос методы и свойства объектов, а также создавать один запрос на базе другого. Всё это позволяет формулировать красивые и сложные запросы на SQL, используя для этого чистейший Python.

В этом докладе мы:
1) покажем, какие выразительные запросы можно теперь писать с помощью PonyORM;
2) расскажем, в чем возникают семантические сложности при трансляции Python в SQL;
3) объясним, что нужно сделать для того, чтобы реализовать аналогичную трансляцию запросов в другом ORM (например, в SQLAlchemy), и почему код трансляции может быть гораздо проще, чем в Пони;
4) раскроем, как устроена главная фишка транслятора PonyORM - система кэширования, позволяющая транслировать каждый запрос не более одного раза, сохраняя при этом бескомпромиссно полный динамизм питоновских выражений.

Другие доклады секции Базы данных и ORM