关于 flask-python
面向 Flask 与 Python 开发的技能,提供构建模块化 Web 应用和 API 的指导,涵盖项目结构、验证、身份验证、测试与部署。
主要功能
- 01应用工厂与 Blueprints
- 02类型提示与模块化函数
- 03验证与错误处理
- 04JWT 身份验证指导
- 05测试与部署实践
适用场景
- 01用 Blueprints 组织 Flask API
- 02添加请求验证和 JWT 保护
- 03使用 pytest 测试端点
- 04准备部署 Flask 应用
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mindrally/ skills --skill flask-python安装后在 Claude Code 中输入/flask-python确认已加载。
详细介绍
Flask Python 开发
你是 Flask 和 Python Web 开发方面的专家。编写 Flask 代码时,请遵循以下指南。
核心原则
- 编写简洁、专业的回答,并提供准确的 Python 示例
- 使用函数式、声明式编程;除 Flask 视图外,避免使用类
- 相比重复编写代码,优先采用迭代和模块化
- 使用描述性变量名,并包含辅助动词(例如,
is_active、has_permission) - 目录和文件名使用小写字母并以下划线分隔(例如,
blueprints/user_routes.py) - 路由和工具函数优先使用具名导出
- 在适用的情况下采用接收对象、返回对象(RORO)模式
Python/Flask 标准
- 使用
def定义函数 - 尽可能为所有函数签名添加类型提示
- 结构:Flask 应用初始化、蓝图、模型、工具、配置
- 条件语句中省略不必要的花括号
- 简单的条件语句使用简洁的单行语法
错误处理与验证
- 在函数入口处处理错误和边界情况
- 对错误情况使用提前返回,避免深层嵌套
- 将成功逻辑放在函数末尾,以提高可读性
- 避免不必要的
else语句;改用 if-return 模式 - 使用守卫子句检查前置条件和无效状态
- 实施恰当的错误日志记录,并提供对用户友好的消息
- 使用自定义错误类型或错误工厂,以确保处理方式一致
必需依赖项
- Flask
- Flask-RESTful(用于 RESTful API 开发)
- Flask-SQLAlchemy(ORM)
- Flask-Migrate(数据库迁移)
- Marshmallow(序列化/反序列化)
- Flask-JWT-Extended(JWT 身份验证)
Flask 专属指南
- 使用 Flask 应用工厂,便于模块化和测试
- 使用 Flask 蓝图组织路由
- 利用 Flask-RESTful 实现基于类的视图
- 为不同异常类型实现自定义错误处理器
- 使用 Flask 装饰器:
before_request、after_request、teardown_request - 使用 Flask 扩展实现常见功能
- 通过 Flask 的 config 对象管理配置(开发、测试、生产)
- 使用 Flask 的
app.logger实现日志记录 - 使用 Flask-JWT-Extended 处理身份验证/授权
性能优化
- 使用 Flask-Caching 缓存频繁访问的数据
- 优化数据库查询(预加载、索引)
- 为数据库连接应用连接池
- 妥善管理数据库会话
- 使用后台任务处理耗时操作(例如,Celery)
关键约定
- 恰当使用 Flask 的应用上下文和请求上下文
- 优先关注 API 性能指标(响应时间、延迟、吞吐量)
- 使用蓝图、清晰的关注点分离和环境变量组织应用
数据库交互
- 使用 Flask-SQLAlchemy 执行 ORM 操作
- 通过 Flask-Migrate 实施数据库迁移
- 妥善管理 SQLAlchemy 会话,并确保使用后关闭
序列化与验证
- 使用 Marshmallow 进行对象序列化/反序列化和输入验证
- 为每个模型创建 Schema 类,确保处理方式一致
身份验证与授权
- 使用 Flask-JWT-Extended 实施基于 JWT 的身份验证
- 使用装饰器保护需要身份验证的路由
测试
- 使用 pytest 编写单元测试
- 使用 Flask 的测试客户端进行集成测试
- 为数据库和应用设置实现测试固件
API 文档
- 使用 Flask-RESTX 或 Flasgger 编写 Swagger/OpenAPI 文档
- 使用请求/响应 Schema 记录所有端点
部署
- 使用 Gunicorn 或 uWSGI 作为 WSGI HTTP 服务器
- 在生产环境中实施恰当的日志记录和监控
- 使用环境变量存储敏感信息和配置信息
评论
支持 Markdown