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