Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Avoid common Flask mistakes — context errors, circular imports, session configuration, and production gotchas.
Avoid common Flask mistakes — context errors, circular imports, session configuration, and production gotchas.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
current_app only works inside request or with app.app_context() — "working outside application context" error g is per-request storage — lost after request ends, use for db connections Background tasks need context — with app.app_context(): or pass data, not proxies create_app() factory pattern avoids circular imports — import current_app not app
request, session only inside request — "working outside request context" error url_for needs context — url_for('static', filename='x', _external=True) for absolute URLs Test client provides context automatically — but manual context for non-request code
from app import app in models causes circular — use factory pattern Import inside function for late binding — or use current_app Blueprints help organize — register at factory time, not import time Extensions init with init_app(app) pattern — create without app, bind later
SECRET_KEY required for sessions — random bytes, not weak string No SECRET_KEY = unsigned cookies — anyone can forge session data SESSION_COOKIE_SECURE=True in production — only send over HTTPS SESSION_COOKIE_HTTPONLY=True — JavaScript can't access
debug=True in production = remote code execution — attacker can run Python Use FLASK_DEBUG env var — not hardcoded Debug PIN in logs if debug enabled — extra layer, but still dangerous
url_prefix set at registration — app.register_blueprint(bp, url_prefix='/api') Blueprint routes relative to prefix — @bp.route('/users') becomes /api/users blueprint.before_request only for that blueprint — app.before_request for all
db.session.commit() explicitly — autocommit not default Session scoped to request by Flask-SQLAlchemy — but background tasks need own session Detached object error — object from different session, refetch or merge db.session.rollback() on error — or session stays in bad state
flask run is dev server — use Gunicorn/uWSGI in production threaded=True for dev server concurrency — but still not production-ready Static files through nginx — Flask serving static is slow PROPAGATE_EXCEPTIONS=True for proper error handling with Sentry etc.
return redirect('/login') vs return redirect(url_for('login')) — url_for is refactor-safe JSON response: return jsonify(data) — not return json.dumps(data) Form data in request.form — JSON body in request.json or request.get_json() request.args for query params — request.args.get('page', default=1, type=int)
Trading, swaps, payments, treasury, liquidity, and crypto-financial operations.
Largest current source with strong distribution and engagement signals.