PYTHONOMANIA
273 subscribers
195 photos
3 videos
1 file
616 links
Откройте для себя мир Python в PYTHONOMANIA!

Идеально подходит как для начинающих, так и для опытных разработчиков. Присоединяйтесь к нам, чтобы достичь совершенства в Python!

Сайт: https://pythonomania.github.io/
Download Telegram
📱TurboDRF.

TurboDRF — проект, который позволяет быстро создавать полноценные REST API из моделей Django без шаблонного кода.

🔹Особенности:

🔘Автоматическая генерация сериализаторов и ViewSet’ов.

🔘Поддержка ролевых разрешений.

🔘Настройка фильтров, поиска и пагинации без лишних усилий.

✅Зачем тратить время на рутинные задачи, если TurboDRF сделает всё за вас?

#Django #DRF #Python #API #TurboDRF #Backend #OpenSource #Разработка #WebDev

📱Ссылка на репозиторий:
https://github.com/alexandercollins/turbodrf
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍2⚡11
📱CRUDAdmin.

CRUDAdmin
— мощный генератор админ-панелей для FastAPI с встроенной безопасностью, аутентификацией и трекингом событий.

Построен на базе FastCRUD и HTMX, позволяет быстро создавать готовые к продакшену админ-панели с минимальной настройкой.

🔹Основные возможности:

🔘Мульти-бэкенд сессий: память, Redis, Memcached, БД и гибрид.

🔘Защита: CSRF, ограничение запросов, IP-фильтры, HTTPS, безопасные куки.

🔘Отслеживание событий и аудиторские логи.

🔘Автоматическая генерация UI из моделей SQLAlchemy.

🔘Продвинутые фильтры, поиск, пагинация и массовые операции.

🔘Современный адаптивный интерфейс с поддержкой тёмной и светлой тем.

#FastAPI #CRUDAdmin #Админпанель #Backend #Python #WebDev #API #Redis #Memcached #Безопасность #OpenSource #HTMX #FastCRUD #DevTools #AdminUI #DarkMode

📱Ссылка на репозиторий:
https://github.com/benavlabs/crudadmin
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍4🔥21
📱Full Stack FastAPI Template.

Full Stack FastAPI Template
— это готовый шаблон для создания современного веб-приложения от бэкенда до фронтенда. Всё настроено: бери и пиши бизнес-логику.

🔹Что внутри:

🔘FastAPI + SQLModel + PostgreSQL на бэке.

🔘JWT, безопасное хеширование паролей, восстановление по email.

🔘Pytest + Playwright для тестов.

🔘React + TypeScript + Vite + Chakra UI на фронте.

🔘Поддержка тёмной темы.

🔘Docker Compose для dev/prod.

🔘Автоматическая сборка клиента и API.

🔘CI/CD через GitHub Actions.

🔘Traefik как обратный прокси с HTTPS.

✅Идеально подходит для запуска стартапа, MVP или внутреннего сервиса. Всё по лучшим практикам.

#FastAPI #FullStack #WebDev #Python #React #Docker #CI_CD #PostgreSQL #TypeScript #JWT #Vite #OpenSource #DevTemplate #Traefik #ChakraUI

📱Ссылка на репозиторий:
https://github.com/fastapi/full-stack-fastapi-template
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍2🔥2🤔11
📱Curlify.

Curlify — это инструмент для преобразования Python-запросов (requests) в cURL-команды.

🔹Он пригодится, если ты хочешь:

🔘Отлаживать HTTP-запросы в терминале.

🔘Делиться примерами запросов без лишнего кода.

🔘Воспроизводить баги или тестировать API напрямую из консоли.

🔻Пример:
import requests, curlify

r = requests.get("http://google.ru")
print(curlify.to_curl(r.request))
# curl -X 'GET' -H 'Accept: */*' ... 'http://www.google.ru/'


#Python #Curlify #HTTP #cURL #API #DevTools #Debugging #Backend #WebDev #Requests #PythonTips #OpenSource

📱Ссылка на репозиторий:
https://github.com/ofw/curlify
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍1🔥11
📱Html-to-markdown.

Html-to-markdown — это современная и типобезопасная библиотека на Python для конвертации HTML → Markdown. Это не просто markdownify, а полностью переписанный форк с поддержкой HTML5, кастомными конвертерами и мощной CLI.

❓Что умеет:

🔘Поддержка всех HTML5-тегов.

🔘Метаданные (title, meta) превращаются в комментарии.

🔘GitHub-style чекбоксы.

🔘Подсветка текста и оформление.

🔘Конфигурация из 20+ опций.

🔘Быстрая работа с lxml.

🔘Собственные конвертеры для тегов.

🔘Прогресс и стриминг для больших файлов.

🔘100% тестов и типизация по MyPy.

🔘Полноценная CLI.

🔹Пример:
from html_to_markdown import convert_to_markdown
markdown = convert_to_markdown("<h1>Title</h1><p><mark>Highlight</mark></p>")


✅Идеально для миграции старого HTML, автогенерации документации или чат-ботов, работающих с HTML-сообщениями.

#Python #Markdown #HTML #WebDev #Конвертер #CLI #OpenSource #htmltomarkdown #pipinstall #Parsing #DocumentationTools #PythonTools

📱Ссылка на репозиторий:
https://github.com/Goldziher/html-to-markdown
Please open Telegram to view this post
VIEW IN TELEGRAM
14⚡3👍1
📱Aiosqlitepool.

aiosqlitepool — пул соединений для SQLite в asyncio-приложениях.

aiosqlitepool — это высокопроизводительный пул соединений для асинхронных SQLite-приложений. Он устраняет издержки на создание/закрытие соединений и ускоряет работу с БД за счёт повторного использования «горячих» соединений.

⚠️Это не драйвер SQLite, а надстройка над aiosqlite, повышающая производительность.

❓Зачем использовать aiosqlitepool:

🔘Устраняет накладные расходы на соединения.

🔘Ускоряет запросы за счёт кэша в памяти.

🔘Увеличивает пропускную способность при высокой нагрузке.

🔹Пример базового использования:
async with pool.connection() as conn:
await conn.execute("INSERT INTO users VALUES (?)", ("Alice",))
await conn.commit()


❓Когда стоит использовать:

🔘5–10 запросов к БД в секунду.

🔘30 запросов в секунду от фоновых воркеров.

🔘P99 латентность < 50 мс.

🔘минимизация нагрузки на CPU/диск.

#Python #SQLite #AsyncIO #FastAPI #aiosqlite #aiosqlitepool #Backend #Performance #DevTools #WebDev #DataEngineering #Database

📱Ссылка на репозиторий:
https://github.com/slaily/aiosqlitepool
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2⚡1
📱OctopusDash.

OctopusDash
— это современная, open-source админ-панель для Django с красивым UI, мощной фильтрацией и гибким управлением правами доступа. Создана для разработчиков и команд, которым нужно больше гибкости, ясности и расширяемости по сравнению с дефолтной Django admin.

🔹Ключевые возможности:

🔘Современный UI: минималистичный дизайн на TailwindCSS, адаптивная верстка, плавная навигация.

🔘Продвинутая фильтрация и поиск: динамические фильтры, полнотекстовый поиск, комбинированные условия.

🔘Гранулярный контроль доступа: права по моделям, действиям, пользователям и группам.

🔘Расширяемость: легко добавлять/переопределять представления, шаблоны и поведение.

❓Почему OctopusDash?

Django admin мощный, но устарел и ограничен. OctopusDash создавался с нуля, чтобы дать:

🔘Гибкие права доступа и кастомные дашборды.

🔘Чистый и современный интерфейс.

🔘Архитектуру для плагинов, API и сложных кастомизаций.

#django #python #opensource #django_admin #adminpanel #webdev #octopusdash #tailwindcss #uiux #backend #devtools

📱Ссылка на репозиторий:
https://github.com/husseinnaeemsec/octopusdash
Please open Telegram to view this post
VIEW IN TELEGRAM
1⚡3👍2🔥1
📱Air.

Air
— современный фреймворк, который объединяет FastAPI, Starlette и Pydantic, привнося в Python тот же комфорт, что Next.js дал JavaScript.

✅Создавай API и HTML-страницы в одном приложении — без лишнего кода, без лишней магии.

🔹Особенности:

🔘Основан на FastAPI — простота и скорость.

🔘Air Tags — декларативное создание HTML прямо из Python.

🔘Полная совместимость с Jinja2.

🔘Поддержка HTMX для динамики без JavaScript-фреймворков.

🔘Валидация форм через Pydantic.

🔘Без сборок и зависимостей — чистый сервер-рендеринг.

🔘Расширяемость через экосистему пакетов.

📦Установка:
pip install -U air


#Python #FastAPI #WebFramework #HTMX #Jinja2 #Pydantic #AirFramework #WebDev #AsyncPython

📱Ссылка на репозиторий:
https://github.com/feldroy/air
Please open Telegram to view this post
VIEW IN TELEGRAM
1⚡3👍3
📱DJ Checkup.

DJ Checkup
— это инструмент для проверки безопасности Django-сайтов.

Он запускается из командной строки и выполняет те же проверки, что и сервис djcheckup.com, чтобы убедиться, что ваш сайт защищён от распространённых угроз.

🔹Что проверяет DJ Checkup:

🔘Доступность сайта и корректность ответов.

🔘Безопасность Django admin и страниц входа.

🔘Настройку CSRF и session cookies (HttpOnly, Secure, SameSite).

🔘Включён ли DEBUG режим в продакшене.

🔘HTTPS и перенаправление с HTTP.

🔘Заголовки безопасности (HSTS, X-Frame-Options).

✅Проверяйте свои Django-сайты на уязвимости легко и быстро с DJ Checkup!

#Django #Security #Python #WebDev #DJCheckup #CyberSecurity #DevTools #WebSecurity #PythonTools

📱Ссылка на репозиторий:
https://github.com/stuartmaxwell/djcheckup
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍22
📱FastAPI and NiceGUI Full-Stack Template.

FastAPI + NiceGUI Full-Stack Template — это готовый шаблон для создания полноценных веб-приложений на Python.

🔹Если кратко:

Бэкенд на FastAPI + фронтенд на NiceGUI → и всё это пишется только на Python, без HTML, CSS и JavaScript.

❓Почему это круто:

🔘FastAPI — быстрый и современный фреймворк с валидацией через Pydantic и автодокументацией.

🔘NiceGUI — UI-фреймворк, который позволяет строить интерфейсы на Python, как будто вы пишете обычный скрипт.

🔘PostgreSQL в Docker — настроен и готов к работе.

🔘JWT-аутентификация из коробки.

🔘Чистая структура проекта — удобно развивать.

🔘Отлично подходит для демо, внутренних тулов и быстрых прототипов.

🔻Что включено:

🔘Backend на FastAPI.

🔘Frontend на NiceGUI.

🔘PostgreSQL + Docker Compose.

🔘SQLModel для работы с БД.

🔘JWT авторизация.

🔘Автогенерируемые Swagger/ReDoc.

🔘Готовый шаблон для мгновенного старта.

#FastAPI #NiceGUI #Python #FullStack #WebDev #Backend #Frontend #SQLModel #PostgreSQL #Docker #JWT #Uvicorn

📱Ссылка на репозиторий:
https://github.com/jaehyeon-kim/nicegui-fastapi-template
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍22
📱Svc-infra.

Svc-infra — это библиотека для FastAPI, которая упаковывает всю типовую backend-инфраструктуру (авторизацию, биллинг, фоновые задачи, вебхуки, кеширование) в готовые к использованию компоненты.

✅Вместо того чтобы каждый раз писать один и тот же код для аутентификации, работы с БД и очередями задач, вы просто импортируете нужные функции и фокусируетесь на бизнес-логике своего FastAPI-приложения.

❓Что внутри:

🔘Авторизация: JWT, сессии, OAuth/OIDC, MFA, API ключи.

🔘 Биллинг: Учет использования, подписки, счета, интеграция Stripe.

🔘БД: PostgreSQL + MongoDB, миграции, inbox/outbox паттерн.

🔘Фоновые задачи: Очереди, планировщик, повторы, DLQ.

🔘Вебхуки: Подписки, HMAC-подпись, автоповторы доставки.

🔘Кеш: Redis/память, декораторы, namespace'ы.

🔘Observability: Prometheus, Grafana дашборды, OTEL.

🔘Хранилище: S3, локальное, in-memory.

🔘Multi-tenancy: Изоляция тенантов.

🔘Rate Limiting: Ограничение по пользователю/эндпоинту.

#Python #FastAPI #Backend #API #WebDev #DevOps #SaaS #Microservices #Infrastructure #OpenSource #Coding #Programming #SoftwareDevelopment #CloudNative #ProductionReady

📱Ссылка на репозиторий:
https://github.com/nfraxlab/svc-infra
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍3🔥1
📱JustHTML.

JustHTML — это Python‑парсер HTML5, который «просто работает»: без C‑расширений, системных библиотек и сложного API.

Модуль реализует актуальный WHATWG HTML5 стандарт, поэтому если браузер может распарсить документ, JustHTML тоже сможет, включая сложные правила обработки ошибок.

Он возвращает обычные Python‑объекты и позволяет искать элементы по знакомым CSS‑селекторам через один метод query(), что делает разбор и обход дерева максимально удобным.
​
🔹Особенности:

🔘100% соответствие html5lib‑tests (9k+ тестов), 100% покрытие и миллионы fuzz‑тестов на сломанный HTML.
​
🔘Ноль зависимостей, кроссплатформенность (CPython, PyPy, Pyodide и др.) и установка одной командой: pip install justhtml.
​
🔘Встроенный CLI: можно парсить stdin/файлы и сразу получать текст, Markdown или HTML по CSS‑селекторам прямо из терминала.
​
✅JustHTML — когда нужен HTML5‑парсинг «по стандарту», а не «как получится».

#python #html5 #parsing #webscraping #webdev #pythondev #cli #justhtml

📱Ссылка на репозиторий:
https://github.com/EmilStenstrom/justhtml
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍2⚡1🔥1
📱Bengal.

Bengal — это быстрый статический генератор сайтов для Python 3.14+ с параллельной сборкой, автодоком и валидацией контента, ориентированный на современные проекты (блоги, документацию, лендинги и т.п.).

🔹Ключевые возможности:

🔘Производительность: параллельные сборки, инкрементальные rebuild’ы, кэширование сжатое Zstandard.

🔘Современный стек: требует Python 3.14+, использует free-threading и полностью типизирован.

🔘«Из коробки»: автогенерация API‑доков (Python, CLI, OpenAPI), валидация контента, анализ структуры сайта.

🔘Расширяемость: сменные движки шаблонов, Markdown‑парсеров и подсветки кода без изменения контента.

🚀Быстрый старт:

🔘Установка и запуск dev‑сайта:
  pip install bengal
bengal new site mysite && cd mysite && bengal serve

Первая команда создаёт каркас, вторая поднимает dev‑сервер с live‑reload.

🔻Основные команды:

🔘bengal build — продакшн‑сборка.
🔘 bengal serve — dev‑сервер.
🔘bengal validate — проверки и валидация.
🔘bengal fix — авто‑фикс проблем.
🔘bengal graph report — отчёт по структуре сайта.

🔻Генерация структуры сайта:

🔘Интерактивный мастер: bengal new site задаёт вопросы и предлагает пресеты: blog, docs, portfolio, product, resume, blank, custom.

🔘Шаблоны без вопросов:
  bengal new site my-docs --template docs
bengal new site my-blog --template blog
bengal new site portfolio --template portfolio

Каждый шаблон создаёт готовые разделы (docs: getting-started, guides, reference; blog: blog + about и т.д.).

🔻Расширение существующего сайта:

🔘Добавление секций:
  bengal init --sections docs --sections tutorials
bengal init --sections blog --with-content --pages-per-section 5
bengal init --sections api --dry-run

Тип секции выводится из имени (blog/posts → blog, docs/guides → doc, about/contact → section).

🔘Сложные структуры можно описать YAML‑манифестами и применить через bengal project skeleton apply my-structure.yaml.[1]

🔻Технологический стек и лицензия:

🔘Тема по умолчанию: тёмная/светлая, адаптивная, с поиском, TOC и подсветкой.

🔘Движки: шаблоны Kida/Jinja2, Markdown‑парсеры Patitas/Mistune/Python‑Markdown, подсветка Rosettes (быстрее Pygments).

🔘Проект распространяется под лицензией MIT, что даёт максимально свободное использование и модификацию кода.

#Bengal #Python #StaticSiteGenerator #SSG #Python314 #FreeThreading #WebDev #Docs #Blog #Autodoc #Markdown #Jinja2 #Performance #DevTools

📱Ссылка на репозиторий:
https://github.com/lbliii/bengal
Please open Telegram to view this post
VIEW IN TELEGRAM
23👍2
📱WebRockets.

WebRockets — это высокопроизводительный WebSocket-сервер для Python с нативной поддержкой Django. Ядро написано на Rust (PyO3 + axum + fastwebsockets) для максимальной скорости — до 10x быстрее Daphne в бенчмарках.

🔹Ключевые фичи:

🔘Производительность — Rust-ядро, 10x выше throughput на 100 соединениях (Thinkpad i7, Linux).
🔘Django-интеграция — аутентификация (Session, Token из cookie/header/query), команды runwebsockets.
🔘Pattern Matching — роутинг по дискриминатору + Pydantic-валидация JSON.
🔘Broadcasting — Redis/RabbitMQ из коробки.
🔘Async/Sync — колбэки на Python, полная async-поддержка.

🔻Быстрый старт (standalone):

from webrockets import WebsocketServer
server = WebsocketServer(host="0.0.0.0", port=8080)
echo = server.create_route("ws/echo/", "echo")

@echo.connect("before")
def on_connect(conn): print(f"Connected: {conn.path}")

@echo.receive
def on_message(conn, data): conn.send(f"You said: {data}")

server.start()


Django (websockets.py в app):
from webrockets.django import server
from webrockets.django.auth import SessionAuthentication

chat = server.create_route("ws/chat/", "chat", authentication_classes=[SessionAuthentication()])

@chat.connect("before")
def on_connect(conn): print(f"User {conn.user} joined")

@chat.receive(match=Match("type", "message"), schema=ChatMessage)
def on_message(conn, data: ChatMessage): conn.broadcast([data.room], data.content)

# Запуск: python manage.py runwebsockets


🔻Установка:
pip install webrockets[django,schema].

#WebRockets #WebSocket #Django #Rust #Python #Async #HighPerformance #WebDev #OpenSource

📱Ссылка на репозиторий:
https://github.com/ploMP4/webrockets
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍6🔥22
📱Pycaniuse.

pycaniuse — это маленький CLI‑инструмент на Python, который позволяет спрашивать caniuse.com прямо из терминала: ввёл запрос — получил сводку по поддержке фич браузерами, без переключения в браузер.

🔹Основное:

🔘Обычный режим показывает компактный список основных браузеров со статусами: ✅ поддерживается, ❌ нет, ◐ частично, ⁖ неизвестно.

🔘Полноэкранный --full даёт интерактивное TUI: можно стрелками/hjkl листать браузеры и версии, вкладки с деталями, заметками и ресурсами.

🔘Умный поиск: если совпадение одно — выбирается автоматически; при нескольких в интерактивном TTY появится выбор, в неинтерактивном — детерминированно берётся первый матч.

🔘Парсит «живой» HTML caniuse.com (без локальной БД), поэтому всегда показывает актуальные данные по поддержке.

🐱Установка и примеры:

🔘Установка: pip install pycaniuse
🔘Примеры:
- caniuse flexbox
- caniuse "css grid"
- caniuse flexbox-gap --full

#Python #CLI #WebDev #CanIUse #BrowserCompatibility #Frontend #DeveloperTools

📱Ссылка на репозиторий:
https://github.com/viseshrp/pycaniuse
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2⚡1
📱Django Signals.

Django Signals — это мощный механизм, который позволяет разным частям вашего приложения "общаться" друг с другом, автоматически реагируя на различные события (например, сохранение модели или удаление объекта).

Но давайте будем честны: когда проект разрастается, поиск всех отправителей и получателей сигналов превращается в настоящий детектив с дебагом вслепую!

Устали искать концы? Встречайте Django Signals Panel!

Это удобный инструмент, который собирает и выводит все зарегистрированные сигналы Django и их обработчики (receivers) прямо в стандартную панель администратора.

🔹Главные фичи:

🔘Авто-поиск: автоматически находит все сигналы в вашем проекте и установленных приложениях.

🔘Детальная инспекция: показывает имя функции, модуль, путь к файлу, отправителя (sender) и dispatch UID для каждого обработчика.

🔘Просмотр исходного кода: исходники receiver'ов с подсветкой синтаксиса можно читать прямо в админке (включается опционально).

🔘Удобная навигация: быстрый поиск по имени/модулю и фильтрация по приложениям.

🔘Zero migrations: пакет работает исключительно на чтение, ваша база данных не затрагивается вообще!

🔘Полная поддержка встроенной тёмной темы Django.

🚀Быстрый старт:
pip install dj-signals-panel
(Требуется Python 3.9+ и Django 4.2+)

#Django #Python #Backend #WebDev #DjangoAdmin #OpenSource #DevTools #Programming

📱Ссылка на репозиторий:
https://github.com/yassi/dj-signals-panel
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍2🔥22
📱PyWry.

PyWry — это
мощный кроссплатформенный рендеринг-движок и UI-тулкит для Python, который позволяет создавать интерактивные приложения с одним и тем же кодом для трех разных сред:

🔘Нативное окно — использует встроенный веб-просмотрщик ОС (webview) через PyTauri. Никакого тяжеловесного Electron или Qt, полная свобода HTML/CSS/JS.

🔘Jupyter виджет — работает в JupyterLab, VS Code и Colab благодаря связке anywidget + FastAPI + WebSocket.

🔘Вкладка браузера — запускается как FastAPI-сервер с поддержкой Redis для горизонтального масштабирования.

❗️Главный принцип: "Создай один раз, запускай где угодно". Вы можете быстро собрать прототип приложения для анализа данных прямо в Jupyter Notebook, затем развернуть его как веб-приложение, а в конце — скомпилировать в легкий и безопасный исполняемый файл .exe/.app (через PyInstaller).

🔹Ключевые фичи:

🔘Богатый UI из коробки: Кнопки, селекты, ползунки, чекбоксы, модальные окна — всё на базе Pydantic-моделей.

🔘Двусторонние события: Легко связывайте Python и JavaScript через app.emit() и app.on().

🔘Интеграция с графиками: Нативная поддержка Pandas DataFrame (через AgGrid), Plotly и мощных графиков TradingView.

🔘AI-Чат: Встроенный виджет чата с поддержкой провайдеров (OpenAI, Anthropic, Magentic) для создания AI-агентов с собственным UI.

🔘MCP (Model Context Protocol): Серверная поддержка для управления виджетами и дашбордами прямо из AI-клиентов (например, Claude Desktop или Cursor).

🔧Установка:
pip install pywry

Быстрый старт (Нативный UI):
from pywry import PyWry
app = PyWry()
app.show("<h1>Hello World!</h1>")
app.block()


#Python #UI #PyWry #DataScience #WebDev #FastAPI #Jupyter #DevTools #OpenSource

📱Ссылка на репозиторий:
https://github.com/deeleeramone/PyWry
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥3⚡2
📱Dj-lite-tenant.

Dj-lite-tenant -
это экспериментальная библиотека для Django, которая выводит изоляцию данных в мультиарендных (multi-tenant) приложениях на абсолютный максимум. Она автоматически создает отдельную базу данных SQLite для каждого пользователя.
Если вы строите легковесный SaaS или пет-проект, где пользователи не должны пересекаться данными ни при каких обстоятельствах, этот инструмент предлагает элегантное решение без развертывания тяжелых серверов БД.

🔹Основные возможности:

🔘Абсолютная изоляция: Каждый зарегистрированный пользователь получает свой собственный изолированный файл .sqlite3 для указанных в настройках приложений.

🔘Кросс-базовые связи: Связи типа ForeignKey между БД пользователя и общей базой данных (например, таблицей самого User) работают прозрачно благодаря механизму ATTACH DATABASE в SQLite. Django ORM сама генерирует валидные SQL-запросы.

🔘Автоматический роутинг: Специальный Middleware сам определяет текущего пользователя в запросе и направляет все запросы ORM в нужный файл. Есть полная поддержка синхронного и асинхронного выполнения.

🔘Мгновенное создание БД (Шаблоны): Чтобы не гонять миграции при регистрации каждого нового юзера, можно включить опцию USE_DATABASE_TEMPLATE. Первая чистая БД выполнит миграции, сохранится как шаблон, а для новых пользователей файлы будут просто клонироваться за миллисекунды.

🔘Фоновые задачи: Для работы вне контекста HTTP-запроса (например, в Celery-тасках) есть удобный контекстный менеджер: with tenant_db(user):.

🔘Интеграция с админкой: Суперпользователи могут переключаться между базами данных пользователей прямо через стандартную панель Django Admin.

🚀Быстрый старт:

Установка:
uv add dj-lite-tenant
# или pip install dj-lite-tenant


Минимальная настройка в settings.py:
INSTALLED_APPS = [
...
"dj_lite_tenant",
]

MIDDLEWARE = [
...
"django.contrib.auth.middleware.AuthenticationMiddleware",
"dj_lite_tenant.middleware.TenantDatabaseMiddleware", # Строго после Auth
]

DATABASE_ROUTERS = ["dj_lite_tenant.routers.TenantDatabaseRouter"]

DJ_LITE_TENANT = {
"DIR": BASE_DIR / "db/tenants",
"APPS": {"notes"}, # Приложения, данные которых улетят в персональные БД
}

Для применения новых миграций ко всем базам данных пользователей используется специальная команда: python manage.py migrate_tenant_dbs.

⚠️Важное примечание: Автор честно предупреждает, что проект пока очень экспериментальный. В текущем виде он не предназначен для production-сред с высокой нагрузкой, но концепт изоляции на уровне SQLite-файлов выглядит чертовски интересно!

#Django #Python #SQLite #MultiTenant #Backend #WebDev #SaaS #Database #OpenSource

📱Ссылка на репозиторий:
https://github.com/adamghill/dj-lite-tenant
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2⚡1
📱Fstache.

Fstache -
это быстрый движок шаблонизации Mustache для Python 3.12+, созданный без единой сторонней зависимости (dependency-free).

Инструмент разработан специально для серверной веб-разработки в стиле HTML-over-the-wire (в связке с HTMX, Alpine.js и Tailwind CSS). Когда сервер рендерит готовую HTML-разметку фрагментами или целиком, скорость шаблонизатора становится критически важной — особенно на бюджетных VPS. Fstache решает эту задачу за счет глубокой оптимизации и предварительной компиляции компонентов.

❓Почему Fstache.

🔘Высокая скорость: По результатам бенчмарков рендерит страницы в 3.1–3.5 раза быстрее, чем популярные аналоги (Chevron, mstache, Pystache).

🔘Предзагрузка и инлайнинг: Статические фрагменты (partials) загружаются и встраиваются в память заранее, полностью убирая накладные расходы при вызове во время обработки запроса.

🔘Поддержка потоковой отдачи (Streaming): Генерация возвращает чанки (iter_chunks()), что позволяет передавать готовый HTML в браузер частями через StreamingResponse в Starlette, FastAPI или Flask.

🔘Удобная работа с данными: В качестве контекста можно передавать обычные словари Python, объекты, датаклассы, списки и функции (callables).

🚀Быстрый старт:

Установка:

pip install fstache


Использование в коде:

import fstache

# Создаем рендерер для продакшена (шаблоны предзагружаются один раз)
render = fstache.create_prod_renderer("./templates")

# Рендерим страницу
result = render("pages/home.mustache", {"name": "Ада"})

# Получаем результат в виде строки или байтов
print(result.to_string())


Библиотека предоставляет готовые пресеты для разных этапов разработки:

🔘create_dev_renderer() — подхватывает изменения файлов на лету без перезапуска сервера.

🔘create_test_renderer() — строго отлавливает пропущенные переменные и шаблоны во время прогона тестов.

🔘create_prod_renderer() — обеспечивает максимальную скорость и стабильность в продакшене.

#Python #Mustache #HTMX #WebDev #Backend #FastAPI #Flask #Starlette #DevTools #OpenSource

📱Ссылка на репозиторий:
https://github.com/servletcloud/fstache
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍2🔥22
📱Citry.

Citry
- это строго типизированный фронтенд-фреймворк для Python, объединяющий серверные события и Alpine.js для создания реактивных веб-интерфейсов без необходимости вести отдельный frontend-проект на JavaScript.

Архитектура проекта вдохновлена идеями Vue и Laravel Livewire: один Python-компонент инкапсулирует HTML-разметку, стили CSS, логику браузера, серверные обработчики событий и переводы интерфейса.

🔹Главные возможности:

🔘Строгая типизация (Full Typing): Входные параметры компонентов валидируются через аннотации типов Python (Kwargs). Опечатки в свойствах или пропущенные поля отлавливаются на этапе статического анализа, а метод template_data() изолирует контекст, доступный шаблону.

🔘Реактивность без тяжелого JS-стека: Бесшовная связка с Alpine.js и серверными событиями (Server Events) позволяет обновлять части DOM-дерева на лету прямо из Python-кода без сборщиков Webpack/Vite.

🔘HTML-подобная композиция: Компоненты вкладываются друг в друга через наглядные теги <c-ComponentName>, а атрибуты с префиксом c- вычисляют Python-выражения (например, c-messages="user.inbox").

🔘Фреймворк-агностик: Легко монтируется в существующие бэкенды на FastAPI, Django, Flask, Starlette, а также в любые чистые ASGI- и WSGI-приложения.

🔘Развитая экосистема разработки:

✔️Официальное расширение для VS Code с автодополнением, диагностикой и подсветкой синтаксиса шаблонов.

✔️Встроенный CLI-анализатор (citry check --static).

✔️Библиотека готовых доступных UI-компонентов (citry-ui) — диалоги, формы, навигация и таблицы.

💻Пример компонента:
from citry import Component

class Welcome(Component):
class Kwargs:
name: str
messages: list[str]

def template_data(self, kwargs, slots):
return {
"name": kwargs.name,
"messages": kwargs.messages,
}

template = """
<section class="welcome">
<h1>С возвращением, {{ name }}!</h1>
<ul>
<li c-for="message in messages">{{ message }}</li>
<li c-empty>Новых сообщений нет.</li>
</ul>
</section>
"""

css = """
.welcome { border-top: 3px solid #2563eb; }
"""

# Рендеринг компонента в HTML-строку
html = str(Welcome(name="Алексей", messages=["Сборка завершена", "Отчет готов"]))


📦Установка:
pip install citry
# или через uv:
uv add citry


✅Фреймворк поддерживает Python от 3.10 до 3.14 и распространяется под свободной лицензией MIT.

#Citry #Python #Frontend #Fullstack #FastAPI #Django #Flask #AlpineJS #Livewire #WebDev #OpenSource #DevTools

📱Ссылка на репозиторий:
https://github.com/citry-dev/citry
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥1