关于 flask
flask 是面向 Python Web 开发者的技能指南,涵盖 Flask 应用构建、配置与部署。内容包括路由、Jinja2 模板、蓝图及常见扩展集成。
主要功能
- 01定义路由并渲染 Jinja2 模板
- 02使用蓝图组织应用模块
- 03配置 WSGI 与扩展
- 04集成 Flask-SQLAlchemy 和 Flask-Login
- 05通过 Gunicorn 部署应用
适用场景
- 01构建服务端渲染的 Web 页面
- 02开发 REST API
- 03将 Flask 项目拆分为蓝图模块
- 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 提供服务端渲染的页面
使用方法
工作流
- 创建应用 — 实例化 Flask 并定义路由
- 添加模板 — 使用 Jinja2 渲染 HTML
- 使用蓝图组织代码 — 将功能拆分到不同的蓝图模块中
- 配置并部署 — 设置环境配置,使用 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