Skip to content

Latest commit

 

History

History
53 lines (36 loc) · 1.75 KB

File metadata and controls

53 lines (36 loc) · 1.75 KB

CLAUDE.md

本文档为 Claude Code (claude.ai/code) 提供代码库操作指南。

交流语言规范

  • 默认使用中文与 Claude 进行交流
  • 如用户输入其他语言(如英文),可临时使用该语言进行交流

项目概述

Libra 是一个极简的 Python Web 框架,仿照 Flask 开发,用于构建轻量级 RESTful API 应用。符合 WSGI 标准。

常用命令

# 运行所有测试
python -m pytest tests/ -v

# 运行单个测试文件
python -m pytest tests/test_app.py -v

# 运行单个测试
python -m pytest tests/test_app.py::TestLibraApp::test_simple_request -v

# 运行示例应用
python example.py

架构

框架采用经典的 WSGI 应用模式:

libra/
├── app.py          # 核心应用类(WSGI 入口)
├── routing.py      # 路由匹配,支持 URL 参数(<id>、<id:int>、<path:path>)
├── request.py      # 请求对象(args、json、form、headers、data)
├── response.py     # 响应对象(JSON、Cookie、重定向)
├── template.py     # 简单模板引擎(变量、for 循环、if 条件)
└── exceptions.py   # HTTP 异常类(NotFoundError、MethodNotAllowedError 等)

核心架构模式:

  • WSGI 兼容Libra 类实现了 __call__wsgi_app(environ, start_response)
  • 路由装饰器@app.route()@app.get()@app.post()
  • 请求/响应:框架将 WSGI environ 封装为 Request 对象;视图可返回字符串、字典或 Response 对象
  • 钩子函数@app.before_request@app.after_request 用于请求生命周期

测试

共 52 个 pytest 测试,存放在 tests/ 目录,按模块组织(test_routing.py、test_request.py、test_response.py、test_app.py)。