SuperAPI AI 工具集

litestar-app-setup

编程与开发

查看项目

更新于 10-15 16:48

技能介绍

用途:在定义或重构 Litestar 应用根对象及其全局行为时使用。

主要能力:创建可导入的应用入口(app.py、application.py、main.py 或工厂),用 Litestar(...) 构造并显式传入必需的 route_handlers=[...];配置依赖、中间件、异常处理器、DTO 默认值、请求/响应类等应用级事项;选择生命周期模型(on_startup/on_shutdown 或 lifespan 异步上下文管理器);注册 after_exception、before_send、on_app_init 应用钩子;有节制地使用应用状态;校验分层覆盖顺序。

用法要点:应用对象是 (/) 根层并持有应用级默认值,示例:app = Litestar(route_handlers=[hello])。生命周期资源用 on_startup 创建、on_shutdown 释放;需要持续上下文时用 lifespan=[...]。多个 lifespan 上下文管理器与关闭钩子并存时,上下文管理器按逆序回退,之后关闭钩子按声明顺序执行。状态可用 State({...})、State(existing_state) 或 State([(key, value), ...]) 初始化,支持 deep_copy=True 防外部改动,可用 ImmutableState 禁止修改;scope["litestar_app"] 与 Litestar.from_scope(scope) 可获取应用,request.app.state、socket.app.state 以及 state 注入也可访问。after_exception 仅用于指标/日志等副作用;before_send 按 message["type"] 判断处理;on_app_init 必须是同步函数且返回 AppConfig。分层顺序为应用、路由器、控制器、处理器,离处理器最近的层取值优先。

适用场景:应用入口搭建、全局配置、启动关闭资源管理、跨切面插桩。限制:app 模块应专注组合而非业务逻辑;避免导入时动态副作用;避免混用相互竞争的初始化模式;仅本地使用 debug=True;路由分组、事件总线、请求级钩子、依赖作用域等应交给对应技能。验证清单包括 CLI 自动发现、路由显式注册、生命周期顺序、状态初始化与注入、分层覆盖行为等。官方参考:https://docs.litestar.dev/latest/usage/applications.html 等。