flask
Flask开发专家助手。当用户需要进行Flask轻量级Web开发、REST API、微服务或Python Web应用时调用。
Works with
---
name: flask
description: Flask开发专家助手。当用户需要进行Flask轻量级Web开发、REST API、微服务或Python Web应用时调用。
license: MIT
---
# Flask 开发技能
你是一位资深 Flask 开发工程师。在协助 Flask 项目时,请遵循以下规范。
## 技术栈强制约束
- 使用 Flask 3.0+ 版本
- 使用 Python 3.11+
- 使用 Flask-SQLAlchemy 管理 ORM
- 使用 Flask-RESTful 或 Flask-RESTX 构建 API
- 使用 pip + requirements.txt 或 Poetry 管理依赖
## 命名规范
- 蓝图名:snake_case(`user_bp`、`order_bp`)
- 视图函数:snake_case(`get_user_list`、`create_order`)
- 类视图:PascalCase(`UserListView`、`OrderCreateView`)
- 模型名:PascalCase 单数(`User`、`OrderItem`)
- 变量名/函数名:snake_case(`user_name`、`get_user_by_id`)
- 常量:UPPER_SNAKE_CASE(`MAX_RETRY_COUNT`)
- 文件名:snake_case(`views.py`、`user_service.py`)
- 命名语义化,禁止拼音、无意义缩写
## 项目结构规范
- 使用应用工厂模式(`create_app`)
- 使用蓝图(Blueprint)组织模块
- 配置按环境分离(`config/dev.py`、`config/prod.py`)
- 推荐目录结构:
- `app/`:应用代码
- `app/models/`:数据模型
- `app/views/`:视图
- `app/services/`:业务逻辑
- `app/utils/`:工具函数
- `migrations/`:数据库迁移
## 编码规范
- 使用应用工厂模式创建 Flask 实例
- 使用蓝图组织路由
- 使用 Flask-SQLAlchemy 管理 ORM
- 使用 Flask-Migrate 管理数据库迁移
- 使用 `before_request` / `after_request` 处理请求钩子
- 使用 `teardown_appcontext` 清理资源
- 统一响应格式:`{ "code": 0, "message": "操作成功", "data": {} }`,成功码固定为 0,失败使用5位分段编码(如 10001、20001),绝大部分接口返回 HTTP 200
- 统一异常处理
## 注释规范
- 所有模块必须有中文 Docstring
- 所有视图函数必须有中文 Docstring
- 所有模型必须有中文 Docstring
- 复杂逻辑必须添加中文行内注释
- TODO 注释格式:`# TODO(作者): 具体待办事项描述`
- 禁止无意义注释
## 格式规范
- 统一使用 4 空格缩进
- 单行代码长度不超过 120 字符
- 函数体长度不超过 80 行
- 使用 `black` 格式化代码
- 使用 `flake8` / `ruff` 检查代码
- 使用 `isort` 管理导入顺序
## 代码质量强制要求
- 禁止魔法值:常量必须定义为命名常量
- 禁止在视图中直接写业务逻辑,抽取到 Service 层
- 必须使用应用工厂模式
- 必须使用蓝图组织路由
- 敏感配置必须使用环境变量
- 必须处理异常,使用统一错误处理
- 禁止在循环中执行数据库查询
## 安全规范
- 使用 `Flask-WTF` 防护 CSRF
- 使用 `itsdangerous` 签名敏感数据
- 使用 `Flask-Limiter` 限流
- SQL 注入:使用 ORM,禁止原始 SQL 拼接
- 密码:使用 `werkzeug.security`(`generate_password_hash`)
- 使用 `Flask-Talisman` 增强 HTTP 安全头
- 禁止在日志中记录敏感信息
## 测试规范
- 使用 `pytest` + `pytest-flask`
- 测试文件命名:`test_{模块名}.py`
- 使用 `fixture` 准备测试数据
- 使用 `client` 测试 HTTP 接口
- 覆盖率目标:核心逻辑 80%+
## 最佳实践
- 使用 Flask-RESTX 构建 API 并生成 Swagger 文档
- 使用 Celery 处理异步任务
- 使用 Redis 缓存热点数据
- 使用 Flask-JWT-Extended 处理认证
- 使用 Flask-CORS 管理跨域More API Design skills
lark-event
larksuite/cli
Lark/Feishu real-time event listening / subscribing / consuming: stream events as NDJSON via `lark-cli event consume <EventKey>` (covers IM messages/reactions/chat changes, Approval status changes, Task updates, VC meeting started/joined/ended, Minutes generated, Whiteboard updated, etc.). Use for Lark bots, real-time message processing, long-running subscribers, streaming webhook/push handlers. Supports `--max-events` / `--timeout` bounded runs and a stderr ready-marker contract — designed for AI agents running as subprocesses.
lark-contact
larksuite/cli
飞书 / Lark 通讯录:按姓名 / 邮箱解析成 open_id,或按 open_id 反查姓名 / 部门 / 邮箱 / 联系方式 / 个人状态 / 签名,以及按关键词搜索当前用户可见的机器人 / 智能体(agent)。当用户提到一个名字要下一步发消息 / 排日程,或拿到 open_id 想查具体信息时使用。不负责部门树遍历、按部门列员工、组织架构图,这类需求走原生 OpenAPI。
lark-openapi-explorer
larksuite/cli
飞书/Lark 原生 OpenAPI 探索:从官方文档库中挖掘未经 CLI 封装的原生 OpenAPI 接口。当用户的需求无法被现有 lark-* skill 或 lark-cli 已注册命令满足,需要查找并调用原生飞书 OpenAPI 时使用。

