secure.py — это простой, но мощный способ защитить ваши Python веб-приложения, независимо от используемого фреймворка.
#Python #WebSecurity #securepy #Django #Flask #FastAPI #CSP #HSTS #WebDevelopment #PyPI #py #secure #security
https://github.com/TypeError/secure
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - TypeError/secure: Modern Python library for HTTP security headers with safe defaults, configurable presets, and first…
Modern Python library for HTTP security headers with safe defaults, configurable presets, and first-class ASGI/WSGI middleware (FastAPI, Django, Flask, Shiny, and more). - TypeError/secure
2👍4🔥3
Otter Wiki — это минималистичное Python-приложение для совместного управления контентом. Все данные хранятся в Git-репозитории, что позволяет отслеживать каждое изменение.
#OtterWiki #Python #Git #Wiki #Markdown #Flask #Halfmoon #CodeMirror #FontAwesome #OpenSource
https://github.com/redimp/otterwiki
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - redimp/otterwiki: A minimalistic wiki powered by python, markdown and git.
A minimalistic wiki powered by python, markdown and git. - redimp/otterwiki
2🔥4👍3
Hyperflask — это full-stack Python-фреймворк для создания веб-сайтов и приложений с минимумом шаблонного кода.
Он объединяет всё лучшее из Flask-экосистемы и современного фронтенда — esbuild, TailwindCSS, HTMX, Alpine.js, React и др.
Hyperflask = Flask + Tailwind + HTMX + SQLORM + MFA + SSE → всё уже настроено.
pip install hyperflask
#Python #Flask #WebDevelopment #Hyperflask #HTMX #Tailwind #FullStack #WebFramework
https://github.com/hyperflask/hyperflask
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - hyperflask/hyperflask: Full stack web framework
Full stack web framework. Contribute to hyperflask/hyperflask development by creating an account on GitHub.
🔥3👍1
Code Spy — это инструмент для Python-разработчиков, который следит за изменениями в вашем проекте и автоматически запускает нужные проверки и задачи.
Представьте: вы сохраняете файл — а Code Spy сам запускает MyPy, Pylint, Pytest, Black или даже перезапускает dev-сервер. Вам не нужно переключаться в терминал, вручную запускать команды или следить, что что-то забыли проверить. Всё происходит автоматически.
Вы просто указываете путь к проекту, настраиваете задачи — и Code Spy начинает «шпионить» за файлами, реагируя на любые изменения.
#Python #CodeSpy #Automation #DevTools #Pytest #Pylint #MyPy #Black #Flask #CodeQuality
https://github.com/joegasewicz/code-spy
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - joegasewicz/code-spy: Watches for file changes & runs tasks against your Python code.
Watches for file changes & runs tasks against your Python code. - joegasewicz/code-spy
1⚡3 2 2
PyPI Stats — это лаконичный и удобный аналитический дашборд для отслеживания статистики скачиваний пакетов из репозитория PyPI (Python Package Index).
Если вы разрабатываете библиотеки на Python и хотите точно знать, как часто их скачивают (и в какую сторону движется тренд), этот инструмент на базе Flask и plotly.js наглядно визуализирует всю динамику.
Проект поставляется с готовой докер-оберткой, так что развернуть его для кастомизации можно буквально в пару команд:
cp .env.example .env
# Отредактируйте .env под вашу конфигурацию
make pypistats
Команда
make pypistats автоматически запустит полноценное окружение для разработки с помощью docker-compose.#Python #PyPI #Flask #Plotly #Dashboard #Analytics #DevTools #OpenSource #Docker
https://github.com/psf/pypistats.org
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - psf/pypistats.org: PyPI downloads analytics dashboard
PyPI downloads analytics dashboard. Contribute to psf/pypistats.org development by creating an account on GitHub.
3🔥3⚡2👍1
Fstache - это быстрый движок шаблонизации Mustache для Python 3.12+, созданный без единой сторонней зависимости (dependency-free).
Инструмент разработан специально для серверной веб-разработки в стиле HTML-over-the-wire (в связке с HTMX, Alpine.js и Tailwind CSS). Когда сервер рендерит готовую HTML-разметку фрагментами или целиком, скорость шаблонизатора становится критически важной — особенно на бюджетных VPS. Fstache решает эту задачу за счет глубокой оптимизации и предварительной компиляции компонентов.
partials) загружаются и встраиваются в память заранее, полностью убирая накладные расходы при вызове во время обработки запроса.iter_chunks()), что позволяет передавать готовый HTML в браузер частями через StreamingResponse в Starlette, FastAPI или Flask.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
GitHub
GitHub - servletcloud/fstache: Fast dependency-free, typed Mustache renderer for Python 3.12+
Fast dependency-free, typed Mustache renderer for Python 3.12+ - servletcloud/fstache
1👍2🔥2 2
Citry - это строго типизированный фронтенд-фреймворк для Python, объединяющий серверные события и Alpine.js для создания реактивных веб-интерфейсов без необходимости вести отдельный frontend-проект на JavaScript.
Архитектура проекта вдохновлена идеями Vue и Laravel Livewire: один Python-компонент инкапсулирует HTML-разметку, стили CSS, логику браузера, серверные обработчики событий и переводы интерфейса.
Kwargs). Опечатки в свойствах или пропущенные поля отлавливаются на этапе статического анализа, а метод template_data() изолирует контекст, доступный шаблону.<c-ComponentName>, а атрибуты с префиксом c- вычисляют Python-выражения (например, c-messages="user.inbox").citry check --static).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
#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
GitHub
GitHub - citry-dev/citry: Fully typed frontend framework for Python with server events and Alpine.js, inspired by Vue and Livewire.
Fully typed frontend framework for Python with server events and Alpine.js, inspired by Vue and Livewire. - citry-dev/citry