
flask
โ Officialโ 2,433by microsoft ยท part of microsoft/debugpy
Best practices for Flask web development including routing, blueprints, and testing.
๐ฅ๐ฅ๐ฅ๐ฅโ VerifiedFreeQuick setup
๐งฐ Not standalone. This skill ships with microsoft/debugpy and only works together with that tool โ install the tool first, then add this skill.
This is the playbook your agent receives when the skill activates โ you don't need to read it to use the skill, but it's here to audit before installing.
Skill: Flask
Best practices for Flask web development including routing, blueprints, and testing.
When to Use
Apply this skill when building Flask web applications or APIs โ routing, blueprints, extensions, and testing.
Project Structure
- Use the application factory pattern (
create_app()) to avoid global state and enable testing. - Organize features into Blueprints; register them in the factory.
- Keep configuration in a
config.pywith classes likeDevelopmentConfig,ProductionConfig.
Routing and Views
- Prefer explicit HTTP method decorators (
@app.get,@app.post) over generic@app.routewithmethods=[...]. - Validate request data early; return 400 errors for malformed input before processing.
- Use
flask.abort()with appropriate HTTP codes rather than returning error responses manually.
Extensions
- Initialize extensions lazily with
ext.init_app(app)inside the factory, not at module level. - Common extensions: Flask-SQLAlchemy, Flask-Migrate, Flask-Login, Flask-WTF, Flask-CORS.
Testing
- Use
app.test_client()for HTTP-level tests andapp.test_request_context()for unit tests. - Use pytest fixtures to create the app and client; scope appropriately (
sessionfor the app,functionfor the client). - Set
TESTING=Trueand use a separate test database.
Pitfalls
- Never use the development server (
app.run()) in production โ use Gunicorn or uWSGI. - Avoid storing mutable state on the
appobject; usegfor request-scoped data. - Never hardcode
SECRET_KEYโ load from environment variables.
Copy & paste โ that's it
npx skills add microsoft/debugpy --skill "flask" --full-depthRun this in your project โ your agent picks the skill up automatically.
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.