home.social

#sqlalchemy — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #sqlalchemy, aggregated by home.social.

  1. Товароучёт + Честный Знак: как написать свое ПО для работы с маркировкой настольных игр

    «Честный Знак» накрывает всех: как не платить по несколько тысяч рублей в месяц за готовые облачные решения, если у вас небольшие тиражи. Рассказываю, как я написал (а точнее навайбкодил) собственное веб-приложение на Python/Flask для учета товаров и автоматизации работы с КМ (кодами маркировки), чтобы упростить складской учет и не сойти с ума от бюрократии.

    habr.com/ru/articles/1058282/

    #Честный_Знак #API #Python #Flask #SQLAlchemy #SQLite #Маркировка_товаров #Автоматизация_склада #настольные_игры

  2. DTO, schema, model, entity: почему в коде всё называется User

    Один User сначала кажется удобным: его можно принять в запросе, вернуть из API, сохранить в базу и передать дальше. Но со временем такой класс смешивает разные границы и перестаёт защищать код. Разбираю на Python-примерах, чем отличаются DTO, schema, model и entity — и когда отдельные классы действительно нужны.

    habr.com/ru/articles/1054614/

    #python #backend #api #dto #pydantic #sqlalchemy #архитектура #orm #naming #django

  3. Django-style фильтры поверх SQLAlchemy: зачем я написал python пакет sqlalchemy-query-manager

    TL;DR: я сделал sqlalchemy-query-manager — небольшой слой поверх SQLAlchemy для типовых backend-запросов. Он не заменяет SQLAlchemy, а добавляет более компактную запись для частых операций: фильтры в стиле number__gte=100 , условия через Q , фильтрацию по связанным моделям, eager loading, CRUD helpers, агрегаты и просмотр итогового SQL. Идея в том, чтобы оставить SQLAlchemy в основе, но убрать повторяющийся код там, где запросы становятся слишком большими.

    habr.com/ru/articles/1052518/

    #sqlalchemy #python #orm #sql #djangostyle_filters #crud #flask #fastapi #open_source #sqlalchemyquerymanager

  4. Browser Policy Manager: распаковка

    В предыдущих публикациях я уже рассказывал, зачем вообще появился Browser Policy Manager, почему я начал с Firefox Enterprise Policies и почему не стал делать «просто генератор policies.json ». Эта статья — более техническая. Здесь я хочу разобрать, как Browser Policy Manager устроен внутри на версии 0.8.8. Версия 0.8.8 для проекта важна тем, что в ней фактически сложилась основная архитектура продукта:

    habr.com/ru/articles/1051206/

    #firefox #browser_policy_manager #корпоративные_политики #policiesjson #fastapi #sqlalchemy #json_schema #системное_администрирование #информационная_безопасность #open_source

  5. Чтобы ваши тесты работали быстрее, нужен простой советский… xdist. Я измерил. Часть 2

    В первой части я ускорил большой интеграционный pytest-сьют с получаса до полутора минут за счёт инфраструктурных правок. Во второй проверяю следующий очевидный слой оптимизации — pytest-xdist. Результат оказался не магическим, но полезным: -n auto дал ещё ×3.4 локально и около ×2.7 в CI. В статье показываю, почему xdist не заменяет дешёвый setup, а только домножает его; как разводить БД и Redis по воркерам; где упираются соединения Postgres; и почему память Docker VM и тюнинг Postgres не сдвинули потолок.

    habr.com/ru/articles/1047134/

    #pytest #pytestxdist #python #xdist #интеграционные_тесты #ускорение_тестов #параллельное_тестирование #postgresql #sqlalchemy #redis

  6. Ваши тесты медленные не из-за базы данных. Я измерил

    Есть устойчивое поверье: интеграционные тесты медленные, потому что ходят в настоящую базу. «Подними SQLite в памяти», «замокай репозитории», «не гоняй Postgres в CI» — стандартный набор советов. Мокать я не люблю, но крыть упрёк «настоящая база — это медленно» было нечем. Поэтому я сел, спрофилировал и померил: 3316 интеграционных тестов, прогон 30 минут. После трёх правок инфраструктуры — 109 секунд. База оказалась ни при чём, а совет «чисти базу через TRUNCATE, это быстрее DELETE» у меня работал ровно наоборот — обидно вдвойне, потому что эта рекомендация уже лежала в черновике моей следующей статьи.

    habr.com/ru/articles/1045923/

    #pytest #pytestasyncio #интеграционные_тесты #Python #sqlalchemy #postgresql #fixtures #asyncio #cprofile #event_loop

  7. Ваши тесты медленные не из-за базы данных. Я измерил

    Есть устойчивое поверье: интеграционные тесты медленные, потому что ходят в настоящую базу. «Подними SQLite в памяти», «замокай репозитории», «не гоняй Postgres в CI» — стандартный набор советов. Мокать я не люблю, но крыть упрёк «настоящая база — это медленно» было нечем. Поэтому я сел, спрофилировал и померил: 3316 интеграционных тестов, прогон 30 минут. После трёх правок инфраструктуры — 109 секунд. База оказалась ни при чём, а совет «чисти базу через TRUNCATE, это быстрее DELETE» у меня работал ровно наоборот — обидно вдвойне, потому что эта рекомендация уже лежала в черновике моей следующей статьи.

    habr.com/ru/articles/1045923/

    #pytest #pytestasyncio #интеграционные_тесты #Python #sqlalchemy #postgresql #fixtures #asyncio #cprofile #event_loop

  8. Ваши тесты медленные не из-за базы данных. Я измерил

    Есть устойчивое поверье: интеграционные тесты медленные, потому что ходят в настоящую базу. «Подними SQLite в памяти», «замокай репозитории», «не гоняй Postgres в CI» — стандартный набор советов. Мокать я не люблю, но крыть упрёк «настоящая база — это медленно» было нечем. Поэтому я сел, спрофилировал и померил: 3316 интеграционных тестов, прогон 30 минут. После трёх правок инфраструктуры — 109 секунд. База оказалась ни при чём, а совет «чисти базу через TRUNCATE, это быстрее DELETE» у меня работал ровно наоборот — обидно вдвойне, потому что эта рекомендация уже лежала в черновике моей следующей статьи.

    habr.com/ru/articles/1045923/

    #pytest #pytestasyncio #интеграционные_тесты #Python #sqlalchemy #postgresql #fixtures #asyncio #cprofile #event_loop

  9. novo post no blog: suas queries do sqlalchemy podem ser cacheadas sem redis manual

    pool configurado, índices no lugar, mas o endpoint de relatório ainda é caro demais pra rodar a cada requisição. o lru_cache não resolve porque os argumentos variam. o redis resolve, mas você acaba escrevendo código de infraestrutura no meio da lógica de negócio.

    o dogpile.cache é a abstração que faltava: regiões configuráveis, invalidação por chave, e um mecanismo de lock que evita o dogpile effect quando o cache expira sob carga.

    riverfount.dev.br/posts/dogpil

    #python #sqlalchemy #cache #performance

  10. novo post no blog: suas queries do sqlalchemy podem ser cacheadas sem redis manual

    pool configurado, índices no lugar, mas o endpoint de relatório ainda é caro demais pra rodar a cada requisição. o lru_cache não resolve porque os argumentos variam. o redis resolve, mas você acaba escrevendo código de infraestrutura no meio da lógica de negócio.

    o dogpile.cache é a abstração que faltava: regiões configuráveis, invalidação por chave, e um mecanismo de lock que evita o dogpile effect quando o cache expira sob carga.

    riverfount.dev.br/posts/dogpil

    #python #sqlalchemy #cache #performance

  11. GigaIDE Pro для FastAPI, Flask и SQLAlchemy

    Наш предыдущий обзор касался поддержки в GigaIDE — возможно, самого популярного фреймворка Python, который, однако, восходит к эпохе шаблонизаторов, когда веб-страницы формировались на бэке. Кстати, обзор, как реализована поддержка идеологических братьев Django в Java, есть здесь . Сегодня мы рассмотрим поддержку других популярных Python-фреймворков: FastAPI, Flask, SQLAlchemy и немного Pydantic. В отличие от Django, все из них стали популярны благодаря своей легковесности и узкой специализации. Первые два — это веб-фреймворки, третий — ORM-фреймворк.

    habr.com/ru/companies/sberbank

    #gigaide #python #fastapi #flask #sqlalchemy #pydantic

  12. Как за один вечер я написал сервис инвентаризации оргтехники для филиальной сети из 16 локаций

    Знакомая работает в IT-департаменте организации с 16 филиалами и ~5000 единиц оргтехники на балансе. Попросила: “Сделай сервис, чтобы загрузить фотку шильдика, и он сказал, у кого эта железка стоит”. Звучит просто. На практике это вылилось в production-сервис с распознаванием по фото через Claude vision, ETL из бухгалтерских .xls (привет, xlrd 1.2), нормализацией грязных инвентарных номеров и автопушем в Google Sheets. Рассказываю про все грабли — от deadlock pandas vs xlrd до бага, который считал две разные железки одной

    habr.com/ru/articles/1039940/

    #Python #FastAPI #SQLite #ETL #pandas #инвентаризация #Claude_vision #OpenRouter #SQLAlchemy

  13. Ich versacke im #python Universum. Nachdem ich einen Griff an #fastapi @FastAPI bekommen und @pydantic ein wenig verstanden habe, habe ich mir #sqlalchemy angesehen und mir ist am Donnerstag #typer über den Weg gelaufen. Auth kommt dann auch noch.
    Mit einem eigenen Skill führt mich @claudeai Stück für Stück zu einer umfangreichen Anwendung

  14. Ich versacke im #python Universum. Nachdem ich einen Griff an #fastapi @FastAPI bekommen und @pydantic ein wenig verstanden habe, habe ich mir #sqlalchemy angesehen und mir ist am Donnerstag #typer über den Weg gelaufen. Auth kommt dann auch noch.
    Mit einem eigenen Skill führt mich @claudeai Stück für Stück zu einer umfangreichen Anwendung

  15. New blog post is up! How I added search functionality to Rack Root, a FastAPI app.

    I cover just about all the Python code I wish I had examples for when I was figuring this out. I go over the database class design, indexes/vectors a little bit, and the API design I ended up implementing.

    #blogging #writing #development #search #rackroot #python #backend #fastapi #homelab #learning #databases #sqlalchemy

    medium.com/@a.j.longchamps/how

  16. New blog post is up! How I added search functionality to Rack Root, a FastAPI app.

    I cover just about all the Python code I wish I had examples for when I was figuring this out. I go over the database class design, indexes/vectors a little bit, and the API design I ended up implementing.

    #blogging #writing #development #search #rackroot #python #backend #fastapi #homelab #learning #databases #sqlalchemy

    medium.com/@a.j.longchamps/how

  17. Хроники тестирования Data Quality

    В современных data-процессах ключевую роль играет обеспечение качества данных. Рассмотрим четыре популярных подхода: DBT, SQL, Python (Pandas/SQLAlchemy) и Great Expectations, оценив их эффективность для различных сценариев проверки данных. Эта статья будет интересна и полезна Data-инженерам, аналитикам данных и специалистам Data Quality для выбора оптимального метода валидации данных в зависимости от стека технологий и сложности бизнес-логики. Материал ориентирован на начинающий уровень подготовки: тем, кто еще не сталкивался системно с инструментами управления качеством данных. Привет, Хабр! Меня зовут Мария, я Data-инженер в SimbirSoft, и предлагаю для начала немного познакомиться с каждым из вышеперечисленных инструментов. Читать далее ⚡

    habr.com/ru/companies/simbirso

    #data_engineering #data_quality #dbt #sql #python #pandas #great_expectations #sqlalchemy #greenplum

  18. Практическое тестирование приложений

    Всем привет! Эта статья — продолжение материала про универсальный прототип бэкенд-приложений. В ней я поделюсь практическим опытом написания тестов и покажу, как выбранная архитектура упрощает этот процесс. Ну что ж, приступим

    habr.com/ru/articles/958014/

    #python #faststream #dishka #litestar #fastapi #sqlalchemy #pydantic #asgi #pytest

  19. Search results are working now, all the way through to the front end!

    I was curious if I needed to worry about HTTP encoding/decoding of things like spaces/%20, but it looks like everything from the frontend to the backend is helping me with all of that. Search results are coming back as expected, though notably not partial string matches. To find the string DS414 for example, you need the whole DS414 and not just 'DS', which isn't the behavior I want. That'll be the next thing to fix.

    I am also going to need to fix how the backend is talking to the database, which may mean fixing all of the fields to be lowercase/snake_case instead of camelCase. I discovered that when I was working on the triggers for finding these search results. My preference would be to name the database field somewhere in the Column(...) definition instead of refactoring most of my API calls, but we'll see what SQLAlchemy has for me there.

    Then I'll add search support for networking/DHCP and I can get past this hurdle.

    #http #programming #vuetify #fastapi #postgres #sqlalchemy #rackroot #homelab

  20. Search results are working now, all the way through to the front end!

    I was curious if I needed to worry about HTTP encoding/decoding of things like spaces/%20, but it looks like everything from the frontend to the backend is helping me with all of that. Search results are coming back as expected, though notably not partial string matches. To find the string DS414 for example, you need the whole DS414 and not just 'DS', which isn't the behavior I want. That'll be the next thing to fix.

    I am also going to need to fix how the backend is talking to the database, which may mean fixing all of the fields to be lowercase/snake_case instead of camelCase. I discovered that when I was working on the triggers for finding these search results. My preference would be to name the database field somewhere in the Column(...) definition instead of refactoring most of my API calls, but we'll see what SQLAlchemy has for me there.

    Then I'll add search support for networking/DHCP and I can get past this hurdle.

    #http #programming #vuetify #fastapi #postgres #sqlalchemy #rackroot #homelab

  21. Tests are passing?! I can go to bed. Yay.

    Mini Rack Root update: I've been working on search functionality, because I don't have enough in the backlog already for Rack Root, and I've discovered just how little I know about database searches. After MANY iterations back and forth on all the ways not to do it, I've finally found a working piece of code.

    I even used ChatGPT, which I almost never do and it was mostly helpful. Sometimes a search engine won't quite get you there and that's how ChatGPT helped. Here's an example with code, help me fix it.

    I've also had oh-so-much fun with database schemas being case sensitive (camel case is out, snake case is in), triggers going...somewhere unknown, calling make_searchable() in the right places, and making sure my test environment was _really_ doing what it should have when I dropped the tables to recreate everything. Testing is close to, but not the same as, day to day use when an app is running, of course.

    That's a really good stopping point for tonight and I will take it. 55 tests, all green.

    #homelab #programming #rackroot #opensource #sqlalchemy #python #postgresql #alwayslearning

  22. Tests are passing?! I can go to bed. Yay.

    Mini Rack Root update: I've been working on search functionality, because I don't have enough in the backlog already for Rack Root, and I've discovered just how little I know about database searches. After MANY iterations back and forth on all the ways not to do it, I've finally found a working piece of code.

    I even used ChatGPT, which I almost never do and it was mostly helpful. Sometimes a search engine won't quite get you there and that's how ChatGPT helped. Here's an example with code, help me fix it.

    I've also had oh-so-much fun with database schemas being case sensitive (camel case is out, snake case is in), triggers going...somewhere unknown, calling make_searchable() in the right places, and making sure my test environment was _really_ doing what it should have when I dropped the tables to recreate everything. Testing is close to, but not the same as, day to day use when an app is running, of course.

    That's a really good stopping point for tonight and I will take it. 55 tests, all green.

    #homelab #programming #rackroot #opensource #sqlalchemy #python #postgresql #alwayslearning

  23. Hi folks. I started with a #cli tool that should manage db migrations for different #data projects on different db types. How do you manage your databases and migrations that are not bound to an application let's say? #sqlalchemy #python #typer #alembic? What features would you like to have?

  24. Hi folks. I started with a #cli tool that should manage db migrations for different #data projects on different db types. How do you manage your databases and migrations that are not bound to an application let's say? #sqlalchemy #python #typer #alembic? What features would you like to have?

  25. It's been a while since I've posted an update for Rack Root, but I've actually made some progress on it lately.

    I've finished my refactor to use SQLAlchemy for the database connections and also (finally) figured out how I want to join tables together and relate things.

    I also changed some API endpoints. For example, if you look for /network/$id/gateway and there's no gateway, you get a 404. I also changed the UX around gateways. When you make a new network, there's no gateway assigned, so that part of the page has a green + icon. When you set a gateway, that icon is now a red delete icon. Those update the field and icon dynamically without having to refresh the whole page.

    The new networks page also will look at the result and see if you got an HTTP 201. If so, you get redirected to the new page. Else, you get an error message. I'm not sure if I want to add more detail to that, it would require the frontend to parse and guess what went wrong. Maybe that's an assignment for another day.

    Finally, there's a new Delete network button on the network detail page.

    #rackroot #homelab #vuetify #fastapi #sqlalchemy #frontend #backend #fullstack #pytest

  26. I think I finally have my SQLModel to SQLAlchemy refactor completed for Rack Root. As of now, I at least have all of my tests passing and typos worked out. I know I need to add some more join statements, but I'll do those as I come across them.

    I still have a little bit of cleanup to do in removing commented code, fixing comments, organizing imports, and syncing this back to the main branch, but the hard part is done.

    Then I can finally get back to the front end work. I've been on the backend side of things for what feels like months.

    #sqlalchemy #fastapi #webdev #backend #databases #opensource #rackroot

  27. I think I finally have my SQLModel to SQLAlchemy refactor completed for Rack Root. As of now, I at least have all of my tests passing and typos worked out. I know I need to add some more join statements, but I'll do those as I come across them.

    I still have a little bit of cleanup to do in removing commented code, fixing comments, organizing imports, and syncing this back to the main branch, but the hard part is done.

    Then I can finally get back to the front end work. I've been on the backend side of things for what feels like months.

    #sqlalchemy #fastapi #webdev #backend #databases #opensource #rackroot

  28. Создание анонимного чата в Telegram: Бот с MiniApp интерфейсом. Часть 1 — Бэкенд на FastAPI, Aiogram, Redis и Centrifugo

    Это первая статья из цикла, посвященного разработке телеграм-бота с MiniApp для случайных чатов. В этой части мы сосредоточимся на создании бэкенда, используя современные технологии: FastAPI для разработки API, Redis для хранения данных в реальном времени и Centrifugo для обеспечения мгновенного взаимодействия между пользователями. Сегодня мы подробно разберем архитектуру проекта, настройку серверов и реализацию логики бота. В следующей статье мы переключимся на фронтенд и займемся разработкой MiniApp с использованием фреймворка Vue.js . Это позволит создать интуитивно понятный интерфейс для пользователей, где они смогут настраивать параметры поиска собеседника и общаться в режиме реального времени (Real time).

    habr.com/ru/companies/amvera/a

    #fastapi #telegram_mini_app #telegram_webapp #python #centrifugo #centrifugo_v6 #sqlalchemy #redis #redis_python #бэкенд

  29. Создание анонимного чата в Telegram: Бот с MiniApp интерфейсом. Часть 1 — Бэкенд на FastAPI, Aiogram, Redis и Centrifugo

    Это первая статья из цикла, посвященного разработке телеграм-бота с MiniApp для случайных чатов. В этой части мы сосредоточимся на создании бэкенда, используя современные технологии: FastAPI для разработки API, Redis для хранения данных в реальном времени и Centrifugo для обеспечения мгновенного взаимодействия между пользователями. Сегодня мы подробно разберем архитектуру проекта, настройку серверов и реализацию логики бота. В следующей статье мы переключимся на фронтенд и займемся разработкой MiniApp с использованием фреймворка Vue.js . Это позволит создать интуитивно понятный интерфейс для пользователей, где они смогут настраивать параметры поиска собеседника и общаться в режиме реального времени (Real time).

    habr.com/ru/companies/amvera/a

    #fastapi #telegram_mini_app #telegram_webapp #python #centrifugo #centrifugo_v6 #sqlalchemy #redis #redis_python #бэкенд

  30. Создание анонимного чата в Telegram: Бот с MiniApp интерфейсом. Часть 1 — Бэкенд на FastAPI, Aiogram, Redis и Centrifugo

    Это первая статья из цикла, посвященного разработке телеграм-бота с MiniApp для случайных чатов. В этой части мы сосредоточимся на создании бэкенда, используя современные технологии: FastAPI для разработки API, Redis для хранения данных в реальном времени и Centrifugo для обеспечения мгновенного взаимодействия между пользователями. Сегодня мы подробно разберем архитектуру проекта, настройку серверов и реализацию логики бота. В следующей статье мы переключимся на фронтенд и займемся разработкой MiniApp с использованием фреймворка Vue.js . Это позволит создать интуитивно понятный интерфейс для пользователей, где они смогут настраивать параметры поиска собеседника и общаться в режиме реального времени (Real time).

    habr.com/ru/companies/amvera/a

    #fastapi #telegram_mini_app #telegram_webapp #python #centrifugo #centrifugo_v6 #sqlalchemy #redis #redis_python #бэкенд

  31. LitestarCatsCV. Тренируемся на кошках. Реализация API и работа с данными

    Что вас ждёт: Если в первой части мы заложили фундамент проекта (выбор инструментов, настройка окружения и структура), то здесь мы превратим этот каркас в полноценное API для управления резюме кошек (или людей — как вам ближе). Мы подключим базу данных, добавим тесты, настроим миграции и даже проверим всё в действии. К концу статьи у вас будет рабочее API, которое можно потрогать руками (или лапками 🐾). Полный код доступен на GitHub — ссылка в конце!

    habr.com/ru/companies/ntechlab

    #python #python3 #litestar #alembic #sqlalchemy #orm #pytest #asyncpg

  32. So in about an hour, I refactored out SQLAlchemy and Pydantic to replace it with SQLModel – and some tests are actually passing already! I continue to appreciate pytest and how easy that makes this kind of effort.

    Starting with the device type class, I'm going to be working on rewriting my "queries" to fit the SQLModel expectations vs what I was using with SQLAlchemy. I'm using the term queries in quotes there since it looks more like I'm calling methods, and I do see some warnings from SQLModel suggesting what I can replace them with.

    From there, I should hopefully be able to simplify my code, classes, data types, tables, and other pieces. That'll most likely be a job for Wednesday.

    #rackroot #webdev #backend #database #fastapi #sqlmodel #programming #sqlalchemy #pytest

  33. So in about an hour, I refactored out SQLAlchemy and Pydantic to replace it with SQLModel – and some tests are actually passing already! I continue to appreciate pytest and how easy that makes this kind of effort.

    Starting with the device type class, I'm going to be working on rewriting my "queries" to fit the SQLModel expectations vs what I was using with SQLAlchemy. I'm using the term queries in quotes there since it looks more like I'm calling methods, and I do see some warnings from SQLModel suggesting what I can replace them with.

    From there, I should hopefully be able to simplify my code, classes, data types, tables, and other pieces. That'll most likely be a job for Wednesday.

    #rackroot #webdev #backend #database #fastapi #sqlmodel #programming #sqlalchemy #pytest

  34. Структура FastAPI приложения

    В данной статья я решил описать свой опыт создания шаблона для проектов, использующих FastAPI, SQLAlchemy, Docker

    habr.com/ru/articles/871018/

    #FastAPI #Python #Docker #SQLAlchemy #Alembic #Репозиторий #Шаблон #Структура

  35. Telegram Web App, FastAPI и вебхуки в одном приложении: Создаем Telegram-бот с веб-интерфейсом для приема заявок

    Сегодня мы создадим полноценное веб-приложение на FastAPI, которое будет взаимодействовать с Telegram-ботом через MiniApp и вебхуки. В основе проекта — асинхронное взаимодействие с базой данных SQLite с помощью SQLAlchemy, что позволит нам реализовать масштабируемое и эффективное приложение. Наше приложение будет включать как фронтенд, так и API методы для обработки запросов. Все взаимодействия с Telegram-ботом будут осуществляться через вебхуки, что обеспечит быструю и надежную связь. Важным аспектом является то, что мы будем использовать FastAPI для поднятия бота, что позволит интегрировать все компоненты в одном приложении. Для разработки самого бота мы воспользуемся библиотекой Aiogram 3, которая обеспечит удобный и мощный интерфейс для взаимодействия с Telegram API. Это позволит нам быстро реализовать необходимые функции и сделать процесс разработки более эффективным.

    habr.com/ru/companies/amvera/a

    #fastapi #telegram_bot #aiogram_3 #sqlalchemy #telegram_webapp #telegram_webhook #telegram_mini_app #Telegram_Web_App #Telegram_Web_App_JS #Telegram_Web_App_bot

  36. Пишем универсальный прототип бэкенд-приложения: Litestar, FastStream, dishka

    Привет, Хабр! Меня зовут Сергей, я техлид в команде PT BlackBox. Мы с коллегами разрабатываем продукт, который позволяет обнаруживать уязвимости в приложениях методом черного ящика. Фактически мы сами и пишем веб-приложения, и именно о них пойдет речь в статье. Я бы хотел с вами поделиться своими наработками по теме бэкенд-приложений и предоставить вам шаблон-прототип, который, как мне кажется, может закрыть подавляющее большинство потребностей при их разработке. Для написания прототипа я буду использовать Litestar , FastStream и dishka . Эта статья будет особенно полезна тем, кто пишет на Tornado, Django, Flask или AIOHTTP и хочет перейти на более актуальные технологии для дальнейшего развития своих проектов на современных рельсах. Ну что ж, приступим

    habr.com/ru/companies/pt/artic

    #python #Litestar #прототип #web #faststream #asgi #sqlalchemy #alembic #pydantic #dishka

  37. Победа над ORM путем кодогенерации

    Сразу хочу отметить перед читателем, что это не просто вольные рассуждения на тему , а в том числе и презентация моей библиотеки для Python , которую можно найти на github и установить через pip, и которая трудится в моей многопользовательской игре как SQL движок проекта. Проблемы ORM известны всем, кто хоть раз ими пользовался. Об этом существует множество статей как у нас, так и в зарубежных источниках. Эти проблемы в общем можно объединить довольно сложным термином Object‑relational impedance mismatch , что позволю себе вольно перевести как « Объектно‑реляционная разница потенциалов ». Альтернативой использованию ORM всегда было использование чистых драйверов баз данных и написание сырых SQL запросов, которые в свою очередь очень тяжело поддерживать и рефакторить в реальных проектах . В этой статье я не буду хаять ORM ( до меня это уже делали на протяжении без малого полуторадесятка лет ), но хочу предложить альтернативный путь к решению задачи доступа к базе данных из потенциально любого другого ЯП .

    habr.com/ru/articles/781982/

    #ORM #python #postgresql #sqlalchemy #codegen #sql #sql_tips_and_tricks #декоратор #генерация_кода #codegeneration

  38. @glowrocks Django is still very much alive and I, unfortunately, work with it daily at my job. It didn't age well, though. The support for asyncio is still quite rough, support for typing is third-party (see django-stubs) and painful, and it hides too many things (the ORM makes it too easy to make bad requests). The modern most hyped web framework is and I personally found (ex ) quite nice (better integration).

  39. @glowrocks Django is still very much alive and I, unfortunately, work with it daily at my job. It didn't age well, though. The support for asyncio is still quite rough, support for typing is third-party (see django-stubs) and painful, and it hides too many things (the ORM makes it too easy to make bad requests). The modern most hyped web framework is #fastapi and I personally found #litestar (ex #starlite) quite nice (better #sqlalchemy integration).

  40. Check out our latest tutorial on how to import Parquet files into CrateDB using Python, PyArrow, SQLAlchemy, and Pandas 💡

    Our Solution Engineer, Karyn Azevedo, shows you how to do it in a step-by-step tutorial👩🏻‍💻

    Read the full blog post ➡️
    hubs.ly/Q01M1k7d0

  41. Check out our latest tutorial on how to import Parquet files into CrateDB using Python, PyArrow, SQLAlchemy, and Pandas 💡

    Our Solution Engineer, Karyn Azevedo, shows you how to do it in a step-by-step tutorial👩🏻‍💻

    Read the full blog post ➡️
    hubs.ly/Q01M1k7d0

    #cratedb #db #database #db #blogpost #technicalblogpost #techcontent #tutorial #Python #SQLAlchemy #ApacheArrow #Parquet #Pandas

  42. We could also use devs, long-term remote . Python is 3.6/3.9 using and .

    Would be awesome if you have a background, along with and .

  43. We could also use #python devs, long-term remote #contract. Python is 3.6/3.9 using #uWSGI and #SQLAlchemy.

    Would be awesome if you have a #bioinformatics background, along with #javascript and #react.