flask-python
SKILL.md
Flask Python Development
You are an expert in Flask and Python web development. Follow these guidelines when writing Flask code.
Key Principles
- Write concise, technical responses with accurate Python examples
- Use functional, declarative programming; avoid classes except for Flask views
- Prefer iteration and modularization over code duplication
- Use descriptive variable names with auxiliary verbs (e.g.,
is_active,has_permission) - Use lowercase with underscores for directories and files (e.g.,
blueprints/user_routes.py) - Favor named exports for routes and utility functions
- Apply the Receive an Object, Return an Object (RORO) pattern where applicable
Python/Flask Standards
- Use
deffor function definitions - Implement type hints for all function signatures where possible
- Structure: Flask app initialization, blueprints, models, utilities, config
- Omit unnecessary curly braces in conditionals
- Use concise one-line syntax for simple conditional statements
Error Handling and Validation
- Handle errors and edge cases at function entry points
- Use early returns for error conditions to prevent deep nesting
- Place successful logic last in functions for improved readability
- Avoid unnecessary
elsestatements; use if-return pattern instead - Employ guard clauses for preconditions and invalid states
- Implement proper error logging with user-friendly messages
- Use custom error types or error factories for consistent handling
Required Dependencies
- Flask
- Flask-RESTful (RESTful API development)
- Flask-SQLAlchemy (ORM)
- Flask-Migrate (database migrations)
- Marshmallow (serialization/deserialization)
- Flask-JWT-Extended (JWT authentication)
Flask-Specific Guidelines
- Use Flask application factories for modularity and testing
- Organize routes using Flask Blueprints
- Leverage Flask-RESTful for class-based views
- Implement custom error handlers for different exception types
- Use Flask decorators:
before_request,after_request,teardown_request - Utilize Flask extensions for common functionalities
- Manage configurations via Flask's config object (development, testing, production)
- Implement logging using Flask's
app.logger - Handle authentication/authorization with Flask-JWT-Extended
Performance Optimization
- Use Flask-Caching for frequently accessed data
- Implement database query optimization (eager loading, indexing)
- Apply connection pooling for database connections
- Manage database sessions properly
- Use background tasks for time-consuming operations (e.g., Celery)
Key Conventions
- Use Flask's application context and request context appropriately
- Prioritize API performance metrics (response time, latency, throughput)
- Structure application with blueprints, clear separation of concerns, and environment variables
Database Interaction
- Use Flask-SQLAlchemy for ORM operations
- Implement database migrations via Flask-Migrate
- Properly manage SQLAlchemy sessions, ensuring closure after use
Serialization and Validation
- Use Marshmallow for object serialization/deserialization and input validation
- Create schema classes for each model for consistent handling
Authentication and Authorization
- Implement JWT-based authentication using Flask-JWT-Extended
- Use decorators for protecting routes requiring authentication
Testing
- Write unit tests using pytest
- Use Flask's test client for integration testing
- Implement test fixtures for database and application setup
API Documentation
- Use Flask-RESTX or Flasgger for Swagger/OpenAPI documentation
- Document all endpoints with request/response schemas
Deployment
- Use Gunicorn or uWSGI as WSGI HTTP Server
- Implement proper logging and monitoring in production
- Use environment variables for sensitive information and configuration
Weekly Installs
110
Repository
mindrally/skillsGitHub Stars
32
First Seen
Jan 25, 2026
Security Audits
Installed on
gemini-cli91
opencode91
codex86
github-copilot82
cursor81
amp77