mcpField
F
flask

flask

github.com/partme-ai开发72568 次安装4 周前更新
代码仓库

关于 flask

flask 是面向 Python Web 开发者的技能指南,涵盖 Flask 应用构建、配置与部署。内容包括路由、Jinja2 模板、蓝图及常见扩展集成。

主要功能

  1. 01定义路由并渲染 Jinja2 模板
  2. 02使用蓝图组织应用模块
  3. 03配置 WSGI 与扩展
  4. 04集成 Flask-SQLAlchemy 和 Flask-Login
  5. 05通过 Gunicorn 部署应用

适用场景

  1. 01构建服务端渲染的 Web 页面
  2. 02开发 REST API
  3. 03将 Flask 项目拆分为蓝图模块
  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. 添加模板 — 使用 Jinja2 渲染 HTML
  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、路由、模板、Jinja2、蓝图、WSGI、REST API、Gunicorn

评论

支持 Markdown