mcpField
F
flask-python

flask-python

github.com/mindrally开发2871.5k 次安装3 周前更新
代码仓库

关于 flask-python

面向 Flask 与 Python 开发的技能,提供构建模块化 Web 应用和 API 的指导,涵盖项目结构、验证、身份验证、测试与部署。

主要功能

  1. 01应用工厂与 Blueprints
  2. 02类型提示与模块化函数
  3. 03验证与错误处理
  4. 04JWT 身份验证指导
  5. 05测试与部署实践

适用场景

  1. 01用 Blueprints 组织 Flask API
  2. 02添加请求验证和 JWT 保护
  3. 03使用 pytest 测试端点
  4. 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)

关键约定

  1. 恰当使用 Flask 的应用上下文和请求上下文
  2. 优先关注 API 性能指标(响应时间、延迟、吞吐量)
  3. 使用蓝图、清晰的关注点分离和环境变量组织应用

数据库交互

  • 使用 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