flask-python
Flaskアプリ開発におけるBlueprint構成・RESTful API設計・Application Factoryパターンのベストプラクティスを提供するガイドラインです。Flaskプロジェクトの構造化や拡張性の高い設計を行う際に活用できます。
description の原文を見る
Guidelines for Flask Python development with best practices for blueprints, RESTful APIs, and application factories.
SKILL.md 本文
Flask Python Development
Flask と Python ウェブ開発の専門家です。Flask コードを書くときは、以下のガイドラインに従ってください。
Key Principles
- 簡潔で技術的な応答を提供し、正確な Python の例を示す
- 関数型・宣言型プログラミングを使用する。クラスは Flask ビュー以外では避ける
- コード重複よりも反復処理とモジュール化を優先する
- 補助動詞を含む説明的な変数名を使用する (例:
is_active,has_permission) - ディレクトリとファイル名には小文字とアンダースコアを使用する (例:
blueprints/user_routes.py) - ルートとユーティリティ関数には名前付きエクスポートを優先する
- 適用可能な場合は RORO(Receive an Object, Return an Object)パターンを適用する
Python/Flask Standards
- 関数定義には
defを使用する - 可能な限り全ての関数シグネチャに型ヒントを実装する
- 構成:Flask アプリ初期化、ブループリント、モデル、ユーティリティ、設定
- 条件文の不要な波括弧を省略する
- 単純な条件文には簡潔な1行構文を使用する
Error Handling and Validation
- エラーと例外ケースを関数のエントリーポイントで処理する
- エラー条件には早期リターンを使用して深いネストを防ぐ
- 関数内の最後に成功ロジックを配置して可読性を向上させる
- 不要な
elseステートメントは避ける。代わりに if-return パターンを使用する - 前提条件と無効な状態には guard clause を使用する
- ユーザーフレンドリーなメッセージを含む適切なエラーログを実装する
- 一貫した処理のために、カスタムエラータイプまたはエラーファクトリを使用する
Required Dependencies
- Flask
- Flask-RESTful (RESTful API 開発)
- Flask-SQLAlchemy (ORM)
- Flask-Migrate (データベースマイグレーション)
- Marshmallow (シリアライゼーション/デシリアライゼーション)
- Flask-JWT-Extended (JWT 認証)
Flask-Specific Guidelines
- モジュール性とテストのために Flask アプリケーションファクトリを使用する
- Flask Blueprint を使用してルートを整理する
- Flask-RESTful をクラスベースビューに活用する
- 異なる例外タイプのためにカスタムエラーハンドラを実装する
- Flask デコレータを使用する:
before_request,after_request,teardown_request - 共通機能には Flask 拡張機能を活用する
- Flask の config オブジェクト経由で設定を管理する (開発、テスト、本番)
- Flask の
app.loggerを使用してログを実装する - Flask-JWT-Extended を使用して認証/認可を処理する
Performance Optimization
- 頻繁にアクセスされるデータには Flask-Caching を使用する
- データベースクエリの最適化を実装する (eager loading、インデックス)
- データベース接続にはコネクションプーリングを適用する
- データベースセッションを適切に管理する
- 時間のかかる処理には背景タスクを使用する (例:Celery)
Key Conventions
- Flask のアプリケーションコンテキストとリクエストコンテキストを適切に使用する
- API パフォーマンスメトリクス (レスポンスタイム、レイテンシ、スループット) を優先する
- ブループリント、明確な関心の分離、環境変数を持つアプリケーション構造を実装する
Database Interaction
- ORM 操作に Flask-SQLAlchemy を使用する
- Flask-Migrate 経由でデータベースマイグレーションを実装する
- SQLAlchemy セッションを適切に管理し、使用後の終了を確保する
Serialization and Validation
- オブジェクトのシリアライゼーション/デシリアライゼーションと入力検証に Marshmallow を使用する
- 一貫した処理のために各モデルに対してスキーマクラスを作成する
Authentication and Authorization
- Flask-JWT-Extended を使用して JWT ベースの認証を実装する
- 認証が必要なルートを保護するためにデコレータを使用する
Testing
- pytest を使用してユニットテストを書く
- Flask のテストクライアントを統合テストに使用する
- データベースとアプリケーションセットアップのためのテストフィクスチャを実装する
API Documentation
- Swagger/OpenAPI ドキュメンテーションには Flask-RESTX または Flasgger を使用する
- リクエスト/レスポンススキーマを含む全てのエンドポイントをドキュメント化する
Deployment
- WSGI HTTP Server として Gunicorn または uWSGI を使用する
- 本番環境では適切なログとモニタリングを実装する
- 機密情報と設定には環境変数を使用する
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- mindrally
- リポジトリ
- mindrally/skills
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/mindrally/skills / ライセンス: Apache-2.0
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。