Skip to main content

api-reference

Use when the user asks for "Flask API reference", "Flask decorators", "Flask request object", "Flask response", "Flask config options", "Flask url_for", "Flask flash messages", or needs specific Flask framework API details.

Source facts

Repository
Agents-Store/opencode-plugins
Last source activity
October 3, 2026 at 23:16
Detected SKILL.md language
English
Stars
0
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
2 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
api-reference
description
Use when the user asks for "Flask API reference", "Flask decorators", "Flask request object", "Flask response", "Flask config options", "Flask url_for", "Flask flash messages", or needs specific Flask framework API details.
# Flask API Reference Curated Flask framework API. For full docs, see https://flask.palletsprojects.com/ ## Route Decorators ```python @app.route('/path') # GET only (default) @app.route('/path', methods=['GET', 'POST']) # Multiple methods @app.route('/user/<int:id>') # URL variable (int) @app.route('/user/<username>') # URL variable (string) @app.route('/file/<path:filepath>') # URL variable (path with slashes) ``` ## Request Object ```python from flask import request request.method # 'GET', 'POST', etc. request.form['key'] # POST form data (raises 400 if missing) request.form.get('key') # POST form data (returns None if missing) request.args.get('q') # URL query parameters (?q=value) request.files['file'] # Uploaded file request.json # Parsed JSON body: 415 if Content-Type is not JSON, 400 if the body is malformed request.get_json(silent=True) # Same, but returns None instead of raising request.headers['X-Key'] # Request headers request.cookies.get('k') # Cookies request.endpoint # Current endpoint name (e.g., 'auth.login') request.url # Full URL request.remote_addr # Client IP address ``` ## Response Helpers ```python from flask import render_template, redirect, url_for, flash, jsonify, abort, make_response render_template('page.html', var=value) # Render Jinja2 template redirect(url_for('blueprint.view')) # HTTP redirect url_for('blueprint.view', id=1) # Generate URL from endpoint name url_for('static', filename='css/style.css') # Static file URL (no cache busting built in) flash('Message text', 'success') # Flash message (success/error/warning/info) jsonify({'key': 'value'}) # JSON response with correct Content-Type abort(404) # Raise HTTP error make_response(body, status, headers) # Custom response ``` ## Flash Messages (in templates) ```jinja2 {% with messages = get_flashed_messages(with_categories=true) %} {% for category, message in messages %} <div class="alert alert-{{ category }}">{{ message }}</div> {% endfor %} {% endwith %} ``` ## Configuration ```python app.config['SECRET_KEY'] # Required for sessions/CSRF app.config['SQLALCHEMY_DATABASE_URI'] # Database connection string app.config['MAX_CONTENT_LENGTH'] # Max request body size in bytes app.config['PERMANENT_SESSION_LIFETIME'] # Session timeout (timedelta) app.config['SECRET_KEY_FALLBACKS'] # Flask 3.1: old keys still accepted (rotation) app.config['TRUSTED_HOSTS'] # Flask 3.1: allowed Host values, others get 400 app.config['MAX_FORM_MEMORY_SIZE'] # Flask 3.1: max bytes per non-file form field (default 500_000) app.config['MAX_FORM_PARTS'] # Flask 3.1: max fields per multipart body (default 1_000) ``` Debug mode is not a config setting to change in code: use `flask run --debug` or `FLASK_DEBUG=1`. `SQLALCHEMY_TRACK_MODIFICATIONS` has been off by default since Flask-SQLAlchemy 3.0, so it no longer needs to be set. ## Decorators and Hooks ```python @app.before_request # Run before every request @app.after_request # Run after every request (receives response) @app.teardown_request # Run after request, even on error @app.context_processor # Add variables to all templates @app.errorhandler(404) # Custom error page @app.template_filter('name') # Custom Jinja2 filter ``` For Flask-Login, Blueprint API, SQLAlchemy session, and extension patterns, see `references/extensions-reference.md`.
View on GitHub