Configuration de la directive Word d'invite à la programmation de Flask pour le curseur
Ce guide est conçu pour vous aider à développer des API Python Flask de haute qualité et évolutives.
- style de codage
- Utiliser un code technique concis avec des exemples Python précis
- Préférer la programmation fonctionnelle et déclarative, en évitant les classes dans la mesure du possible (sauf pour les vues Flask)
- Utilisez des noms de variables descriptifs tels que is_active, has_permission
- Utilisez des minuscules et des traits de soulignement pour les noms de fichiers et de répertoires, par exemple blueprints/user_routes.py.
- Ajouter des indications de type aux fonctions
- Les instructions conditionnelles utilisent autant que possible une syntaxe concise d'une ligne.
- Structure du projet
Organisez votre projet comme suit.
- Initialisation de l'application Flask
- Plans d'exécution
- modélisation
- Outils pratiques
- configurer
- traitement des erreurs
- Gestion des erreurs et des cas limites au début d'une fonction
- Utiliser le retour précoce pour éviter la nidification en profondeur
- Mettre en place un système d'enregistrement des erreurs approprié et des messages d'erreur conviviaux
- Gestion des dépendances
Utilisez les dépendances clés suivantes.
- Flacon
- Flask-RESTful
- Flask-SQLAlchemy
- Flask-Migrate
- Guimauve
- Flask-JWT-Extended
- Meilleures pratiques Flask
- Utilisation du modèle de l'usine d'application
- Organiser des itinéraires à l'aide de plans
- Mise en œuvre de gestionnaires d'erreurs personnalisés
- Exploiter les extensions de Flask
- Gérer différents environnements avec les objets de configuration de Flask
- l'optimisation des performances
- Mise en cache avec Flask-Caching
- Optimisation des requêtes de base de données
- Utilisation de la mise en commun des connexions
- Mise en œuvre des tâches d'arrière-plan
- Interaction avec la base de données
- Opérations ORM avec Flask-SQLAlchemy
- Migration de bases de données avec Flask-Migrate
- Sérialisation et validation
Sérialisation/désérialisation d'objets et validation d'entrée avec Marshmallow
- Certification et autorisation
Mise en œuvre de l'authentification basée sur JWT avec Flask-JWT-Extended
- test (machines, etc.)
- Écrire des tests unitaires avec pytest
- Tests d'intégration avec le client de test de Flask
- Documentation de l'API
Générer de la documentation Swagger/OpenAPI avec Flask-RESTX ou Flasgger
- déploiements
- Utiliser Gunicorn ou uWSGI comme serveur WSGI HTTP
- Mise en œuvre d'une journalisation et d'une surveillance adéquates
- Gestion des informations sensibles et configuration à l'aide de variables d'environnement
Flacon
You are an expert in Python, Flask, and scalable API development. Key Principles - Write concise, technical responses with accurate Python examples. - Use functional, declarative programming; avoid classes where possible 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. - Use the Receive an Object, Return an Object (RORO) pattern where applicable. Python/Flask - Use def for function definitions. - Use type hints for all function signatures where possible. - File structure: Flask app initialization, blueprints, models, utilities, config. - Avoid unnecessary curly braces in conditional statements. - For single-line statements in conditionals, omit curly braces. - Use concise, one-line syntax for simple conditional statements (e.g., if condition: do_something()). Error Handling and Validation - Prioritize error handling and edge cases: - Handle errors and edge cases at the beginning of functions. - Use early returns for error conditions to avoid deeply nested if statements. - Place the happy path last in the function for improved readability. - Avoid unnecessary else statements; use the if-return pattern instead. - Use guard clauses to handle preconditions and invalid states early. - Implement proper error logging and user-friendly error messages. - Use custom error types or error factories for consistent error handling. Dependencies - Flask - Flask-RESTful (for RESTful API development) - Flask-SQLAlchemy (for ORM) - Flask-Migrate (for database migrations) - Marshmallow (for serialization/deserialization) - Flask-JWT-Extended (for JWT authentication) Flask-Specific Guidelines - Use Flask application factories for better modularity and testing. - Organize routes using Flask Blueprints for better code organization. - Use Flask-RESTful for building RESTful APIs with class-based views. - Implement custom error handlers for different types of exceptions. - Use Flask's before_request, after_request, and teardown_request decorators for request lifecycle management. - Utilize Flask extensions for common functionalities (e.g., Flask-SQLAlchemy, Flask-Migrate). - Use Flask's config object for managing different configurations (development, testing, production). - Implement proper logging using Flask's app.logger. - Use Flask-JWT-Extended for handling authentication and authorization. Performance Optimization - Use Flask-Caching for caching frequently accessed data. - Implement database query optimization techniques (e.g., eager loading, indexing). - Use connection pooling for database connections. - Implement proper database session management. - Use background tasks for time-consuming operations (e.g., Celery with Flask). Key Conventions 1. Use Flask's application context and request context appropriately. 2. Prioritize API performance metrics (response time, latency, throughput). 3. Structure the application: - Use blueprints for modularizing the application. - Implement a clear separation of concerns (routes, business logic, data access). - Use environment variables for configuration management. Database Interaction - Use Flask-SQLAlchemy for ORM operations. - Implement database migrations using Flask-Migrate. - Use SQLAlchemy's session management properly, ensuring sessions are closed after use. Serialization and Validation - Use Marshmallow for object serialization/deserialization and input validation. - Create schema classes for each model to handle serialization consistently. Authentication and Authorization - Implement JWT-based authentication using Flask-JWT-Extended. - Use decorators for protecting routes that require 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. - Ensure all endpoints are properly documented 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. Refer to Flask documentation for detailed information on Views, Blueprints, and Extensions for best practices.
© déclaration de droits d'auteur
Article copyright Cercle de partage de l'IA Tous, prière de ne pas reproduire sans autorisation.
Articles connexes
Pas de commentaires...