告别繁琐的JavaScript,用Python构建高性能、类型安全的动态网页!Ludic框架,一个轻量级、基于组件的HTML页面构建工具,将彻底改变你的Web开发方式。它与htmx.org无缝集成,让你几乎无需编写JavaScript即可创建动态Web服务。准备迎接一次Web开发的革命?
什么是Ludic?
Ludic是一个轻量级的框架,用于以类似React的组件方式构建HTML页面。它旨在与htmx.org一起使用,这样开发人员几乎不需要编写任何JavaScript就能创建动态Web服务。它可以与它自己的Web框架一起使用,该框架是功能强大的Starlette框架的包装器。它使用最新的Python 3.12特性构建,大量使用了类型提示。
Ludic的核心优势:优雅、高效、安全
Ludic的魅力在于它巧妙地结合了Python的简洁性和类型安全,以及htmx的强大动态能力,让Web开发变得前所未有的轻松和高效。
</> htmx无缝集成: Ludic与htmx.org的完美结合,让你能够在纯Python环境下快速构建动态网页。告别复杂的JavaScript交互,使用Python编写简洁高效的代码实现页面更新和数据交互。
类型引导组件: 利用Python强大的类型系统,在开发阶段就能捕获潜在的HTML结构错误。Ludic强制执行比标准HTML更严格的规则,从而促进编写结构良好、易于维护的代码。这显著提升了代码的可靠性和可维护性。
Starlette & Async加持: 基于Starlette和Async,Ludic拥有高性能的Web开发能力。轻松应对高并发请求,构建出响应迅速、稳定可靠的Web应用。
Python f-string的力量: 用Python f-string构建HTML,告别模板引擎的复杂语法,书写流畅自然的代码。
主题化CSS: 轻松添加CSS样式到你的组件,使用主题化管理你的项目风格,保持代码的一致性和可维护性。
响应式布局: 采用Every Layout Book中的思想,创建简洁、响应式的布局,让你的应用在各种设备上都能完美展现。
Ludic vs. 其他框架
| | | |
|---|
| | | |
| | | |
| | | |
| Starlette, FastAPI, Django (可选) | | |
| | | |
类型引导的HTML:编写更安全的HTML
Ludic利用Python的类型系统来强制执行HTML结构规则。例如:
br("Hello, World!") # 类型错误 (<br> 不能有子元素)br() # 正确html(body(...)) # 类型错误 (第一个子元素必须是 <head>)html(head(...), body(...)) # 正确div("Test", href="test") # 类型错误 (未知属性)a("Test", href="...") # 正确
可组合组件:构建模块化应用
你可以创建模块化的组件,并利用Python的类型系统进行类型检查。例如:
Table( TableHead("Id", "Name"), TableRow("1", "John"), TableRow("2", "Jane"), TableRow("3", "Bob"),)
快速上手:安装和示例
安装:
pip install "ludic[full]"pip install uvicorn
一个简单的例子:
components.py:
from typing import overridefrom ludic import Attrs, Componentfrom ludic.html import aclassLinkAttrs(Attrs): to: strclassLink(Component[str, LinkAttrs]): classes = ["link"] @overridedefrender(self) -> a:return a( *self.children, href=self.attrs["to"], style={"color": self.theme.colors.primary}, )
web.py:
from ludic.web import LudicAppfrom ludic.html import b, pfrom .components import Linkapp = LudicApp()@app.get("/")asyncdefhomepage() -> p:return p(f"Hello {b('Stranger')}! Click {Link('here', to='https://example.com')}!")
运行: uvicorn web:app
总结:
Ludic为Python开发者提供了一种全新的构建动态Web应用的方式。它简洁、高效、安全,并且易于上手。通过结合Python的类型系统和htmx的优势,Ludic极大地简化了Web开发流程,让开发者能够专注于业务逻辑的实现,而不是繁琐的JavaScript代码。 尝试Ludic,体验Python带来的Web开发新境界!
项目地址:https://github.com/getludic/ludic