FastHTML Best Practices
a year ago
- #Best Practices
- #FastHTML
- #Web Development
- FastHTML应用与使用FastAPI/react、Django等的应用不同,遵循fast.ai哲学:减少繁文缛节,利用智能默认值,编写简洁清晰的代码。
- 通过FastLite幂等的`create()`方法简化数据库表创建,使用数据类风格的定义使代码更清晰、更具Python风格。
- 路由命名约定允许函数名定义路由,`index`自动映射到`/`,其他函数名也会自动成为路由。
- FastHTML中更推荐使用查询参数而非路径参数,以实现更符合习惯的URL并避免参数名重复。
- 利用`insert()`和`update()`方法的返回值进行函数式链式调用,简化代码。
- 使用`.to()`方法生成URL,提供类型安全和便于重构的代码。
- FastHTML默认包含PicoCSS,可自动为语义HTML元素添加样式而无需自定义CSS。
- 智能默认值包括`Titled`自动将内容包裹在`Container`中,以及`serve()`内部处理`if __name__ == "__main__":`。
- FastHTML组件直接接受可迭代对象,无需使用`*`解包。
- 对于简单转换,函数式模式如`map()`更简洁,尤其是配合FastHTML的可迭代处理特性。
- 极简代码实践包括:对自文档化代码省略注释、不返回空字符串、单行代码表达单一思想。
- 在FastHTML中对所有变更使用POST方法,因其默认仅处理GET和POST,更符合惯例且更简单。
- FastHTML中现代HTMX事件语法将下划线转换为连字符,通过`hx-on__event`语法简化事件处理。