mcpField
F
flask

flask

github.com/partme-ai開発72568 回インストール4 週間前に更新
リポジトリ

flask について

flask は、Flask アプリの構築やデプロイに取り組む Python Web 開発者向けのスキルガイドです。ルーティング、Jinja2 テンプレート、ブループリント、WSGI 設定、拡張機能を扱います。

主な機能

  1. 01ルート定義と Jinja2 テンプレートの描画
  2. 02ブループリントによるアプリの整理
  3. 03WSGI と拡張機能の設定
  4. 04Flask-SQLAlchemy と Flask-Login の統合
  5. 05Gunicorn によるアプリのデプロイ

活用シーン

  1. 01サーバーサイドレンダリングのページ構築
  2. 02REST API の開発
  3. 03Flask プロジェクトのブループリント分割
  4. 04本番アプリの設定とデプロイ

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/partme-ai/full-stack-skills --skill flask

インストール後、Claude Code で/flaskを入力して読み込まれたか確認します。

同梱ファイルLICENSE.txt

詳細

このスキルを使用する場面

次のようなことをユーザーが希望する場合は、いつでもこのスキルを使用します。

  • Flask のルーティングとテンプレートを使って Python の Web アプリケーションを構築する
  • WSGI、ブループリント、拡張機能、デプロイを設定する
  • Flask-SQLAlchemy、Flask-Login、その他の拡張機能を統合する
  • REST API を作成する、または Jinja2 でサーバーサイドレンダリングされたページを提供する

このスキルの使い方

ワークフロー
  1. アプリを作成する — Flask をインスタンス化してルートを定義します
  2. テンプレートを追加する — HTML のレンダリングに Jinja2 を使用します
  3. ブループリントで整理する — 機能をブループリントのモジュールに分割します
  4. 設定してデプロイする — 環境設定を行い、Gunicorn でデプロイします
クイックスタートの例
# app.py
from flask import Flask, render_template, request, jsonify

app = Flask(__name__)
app.config['SECRET_KEY'] = 'change-me-in-production'

@app.route('/')
def index():
    return render_template('index.html', title='Home')

@app.route('/api/items', methods=['GET', 'POST'])
def items():
    if request.method == 'POST':
        data = request.get_json()
        # Process and save item
        return jsonify({'status': 'created', 'item': data}), 201
    return jsonify({'items': []})

if __name__ == '__main__':
    app.run(debug=True)
アプリケーションファクトリーパターン
# __init__.py
from flask import Flask

def create_app(config_name='default'):
    app = Flask(__name__)
    app.config.from_object(config[config_name])

    # Initialize extensions
    db.init_app(app)
    login_manager.init_app(app)

    # Register blueprints
    from .auth import auth_bp
    app.register_blueprint(auth_bp, url_prefix='/auth')

    from .main import main_bp
    app.register_blueprint(main_bp)

    return app
# Development
flask --app app run --debug

# Production
gunicorn -w 4 -b 0.0.0.0:8000 "app:create_app()"
ブループリントの例
# auth/routes.py
from flask import Blueprint, render_template, redirect, url_for

auth_bp = Blueprint('auth', __name__, template_folder='templates')

@auth_bp.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        # Authenticate user
        return redirect(url_for('main.index'))
    return render_template('auth/login.html')

ベストプラクティス

  • モジュール性を高めるため、ブループリントとともにアプリケーションファクトリーパターンを使用します
  • 機密性の高い設定をソースコードに含めず、環境変数を使用します
  • リバースプロキシ(nginx)の背後で Gunicorn または uWSGI を使ってデプロイします
  • Flask-WTF で CSRF 保護を有効にし、セキュリティヘッダーを設定します
  • アプリケーションコンテキストを使った対話型デバッグには flask shell を使用します

リファレンス

キーワード

flask, Python web, routing, templates, Jinja2, blueprints, WSGI, REST API, Gunicorn

コメント