Flask Application Factory Pattern
Commandby davila7 · Added 5mo ago
Claude
Install
npx claude-code-templates@latest --command=cli-tool/templates/python/examples/flask-app/.claude/commands --yesAdd to Claude
claude mcp add flask-application-factory-patternAbout
Flask Application Factory Pattern
Create a scalable Flask application using the factory pattern with blueprints and configuration management.
Purpose
This command helps you set up a Flask application using the application factory pattern, which is the recommended approach for larger Flask applications.
Usage
/app-factory
What this command does
- Creates application factory with proper structure
- Sets up configuration management for different environments
- Implements blueprints for modular design
- Configures extensions (database, auth, etc.)
- Adds error handling and logging
Example Output
# app/__init__.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from flask_login import LoginManager
from flask_mail import Mail
from flask_wtf.csrf import CSRFProtect
from flask_cors import CORS
import logging
from logging.handlers import RotatingFileHandler
import os
# Initialize extensions
db = SQLAlchemy()
migrate = Migrate()
login = LoginManager()
mail = Mail()
csrf = CSRFProtect()
cors = CORS()
def create_app(config_class=None):
"""Application factory function."""
app = Flask(__name__)
# Load configuration
if config_class is None:
config_class = os.environ.get('FLASK_CONFIG', 'development')
if isinstance(config_class, str):
from app.config import config
app.config.from_object(config[config_class])
else:
app.config.from_object(config_class)
# Initialize extensions
db.init_app(app)
migrate.init_app(app, db)
login.init_app(app)
mail.init_app(app)
csrf.init_app(app)
cors.init_app(app)
# Configure login manager
login.login_view = 'auth.login'
login.login_message = 'Please log in to access this page.'
login.login_message_category = 'info'
# Register blueprints
from app.main import bp as main_bp
app.register_blueprint(main_bp)
Tags
CodeAnalysisaitmplclaude-code-templates