Flask Python

作者 mindrally97184105b5da無授權條款269 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫5 週前更新

Guidelines for Flask Python development with best practices for blueprints, RESTful APIs, and application factories.

AI 產生的概覽

Flask Python 網頁開發指南,涵蓋藍圖、REST API 與應用程式工廠。

功能
提供使用 Python 建置 Flask 網頁應用程式的撰寫指南與慣例。內容涵蓋專案結構、錯誤處理、以 Flask-SQLAlchemy 存取資料庫、以 Marshmallow 進行序列化、JWT 驗證、測試、API 文件以及部署。產出的是書面指引與範例慣例,而非可執行的程式碼或檔案。
適用情境
在撰寫或組織 Flask 應用程式程式碼,並希望統一藍圖、RESTful API、應用程式工廠與相關擴充套件的慣例時使用。在設定驗證、資料庫遷移、測試或部署實務時同樣適用。
執行需求
此技能未附帶指令碼或資源,僅為說明性指引。若要遵循其中的建議,需要 Python 環境以及 Flask 與所列擴充套件(Flask-RESTful、Flask-SQLAlchemy、Flask-Migrate、Marshmallow、Flask-JWT-Extended),另可選用 pytest、Gunicorn 或 uWSGI、Flask-Caching、Celery 以及 Flask-RESTX 或 Flasgger 等工具。

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 def for 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 else statements; 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

  1. Use Flask's application context and request context appropriately
  2. Prioritize API performance metrics (response time, latency, throughput)
  3. 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

來源與署名

來源:mindrally/skills位於flask-python提交9718410

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架