Requisitos
Aquí tienes un ejemplo de un archivo requirements.txt
para un proyecto Django, junto con explicaciones de por qué se usa cada paquete:
Requisitos Básicos
- Django: Un marco web de Python de alto nivel que fomenta el desarrollo rápido y un diseño limpio y pragmático.
- django-cors-headers: Una aplicación Django para manejar los encabezados del servidor necesarios para el Compartición de Recursos de Origen Cruzado (CORS).
- django-environ: Una biblioteca Django para gestionar variables de entorno.
- django-templated-mail: Una aplicación Django para enviar correos electrónicos usando plantillas.
- djangorestframework: Un conjunto de herramientas poderoso y flexible para construir APIs Web en Django.
- django-filter: Una aplicación Django para añadir filtrado dinámico de consultas desde parámetros de URL.
- drf-spectacular: Una herramienta para la generación de esquemas OpenAPI 3 para Django REST Framework.
- drf-spectacular-sidecar: Un paquete complementario para drf-spectacular para manejar las dependencias de archivos estáticos.
- djoser: Una biblioteca que proporciona un conjunto de vistas de Django REST Framework para manejar la autenticación.
- djangorestframework-simplejwt: Un backend de autenticación JSON Web Token para Django REST Framework.
- oauthlib: Una implementación genérica y completa de la lógica de firma de solicitudes OAuth.
- PyJWT: Una biblioteca de Python para codificación y decodificación de JSON Web Tokens.
- requests: Una biblioteca HTTP simple y elegante para Python.
- requests-oauthlib: Una extensión de OAuthlib para soportar OAuth en solicitudes HTTP.
- social-auth-app-django: Una biblioteca Django para autenticación social.
- social-auth-core: Una biblioteca principal para proveedores de autenticación social.
- argon2-cffi: Un enlace de Python para el algoritmo de hashing de contraseñas Argon2.
- argon2-cffi-bindings: Enlaces de bajo nivel CFFI para Argon2.
- cryptography: Un paquete diseñado para exponer recetas y primitivas criptográficas a desarrolladores de Python.
- python3-openid: Un conjunto de bibliotecas de Python para implementar OpenID en aplicaciones.
- django-redis: Un backend de caché de Django para Redis.
- redis: Un cliente de Python para Redis.
- django-prometheus: Una aplicación Django para monitorear proyectos Django con Prometheus.
- pillow: Un fork de la Biblioteca de Imágenes de Python (PIL) para abrir, manipular y guardar muchos formatos de archivos de imagen.
- django-import-export: Una biblioteca Django que permite importar y exportar datos con integración en el administrador.
- asgiref: Implementación de referencia ASGI (Interfaz de Servidor de Puerta de Enlace Asíncrona).
- attrs: Una biblioteca para crear clases con métodos especiales añadidos automáticamente.
- certifi: Una biblioteca para proporcionar el paquete CA de Mozilla.
- charset-normalizer: Una biblioteca para la detección de codificación de caracteres.
- defusedxml: Una biblioteca para prevenir ataques XML bomb.
- inflection: Una biblioteca para convertir palabras entre formas singular y plural, y para otras transformaciones de palabras.
- idna: Una biblioteca para Nombres de Dominio Internacionalizados en Aplicaciones (IDNA).
- mccabe: Una herramienta para verificar la complejidad McCabe del código.
- packaging: Una biblioteca para tratar con paquetes de Python.
- pycodestyle: Una herramienta para verificar el código Python contra la guía de estilo PEP 8.
- pycparser: Un analizador C y generador de AST escrito en Python.
- pyflakes: Una herramienta para verificar archivos fuente Python en busca de errores.
- urllib3: Un cliente HTTP potente y fácil de usar para Python.
- cffi: Una Interfaz de Función Extranjera para Python que llama a código C.
- pytz: Una biblioteca para cálculos de zona horaria precisos y multiplataforma.
- tzdata: Base de datos de zonas horarias IANA para Python.
- jsonschema: Una biblioteca para validar esquemas JSON.
- jsonschema-specifications: Una colección de metes-esquemas JSON Schema.
- Markdown: Una implementación de Markdown en Python.
- sqlparse: Un analizador SQL no validante para Python.
- swagger-spec-validator: Una herramienta para validar especificaciones Swagger.
- PyYAML: Un analizador y emisor YAML para Python.
- referencing: Una biblioteca para referenciar esquemas JSON.
- rpds-py: Una biblioteca para los enlaces de Python para rpds (estructuras de datos persistentes) de Rust.
- uritemplate: Una implementación de Python de RFC 6570 Plantillas URI.
- typing_extensions: Pistas de tipo retroportadas y experimentales para Python.
- async-timeout: Un gestor de contexto de tiempo de espera para asyncio.
Requisitos Locales
- psycopg: El adaptador PostgreSQL de nueva generación para Python, que proporciona acceso asíncrono y eficiente a bases de datos PostgreSQL.
- psycopg2-binary: Un paquete binario para
psycopg2
, el adaptador PostgreSQL anterior para Python, que proporciona acceso rápido y seguro a bases de datos PostgreSQL. - ruff: Una herramienta de linting y formateo de código Python rápida destinada a hacer cumplir las pautas de calidad y estilo del código.
- coverage: Una herramienta para medir la cobertura del código de programas Python, útil para pruebas y asegurar que las rutas de código se ejercen.
- flake8: Un envoltorio alrededor de PyFlakes, pycodestyle y el script McCabe de Ned Batchelder, combinando sus funcionalidades para verificar el estilo y la calidad del código Python.
- pre-commit: Un marco para gestionar y mantener ganchos pre-commit de múltiples lenguajes, asegurando la calidad del código antes de realizar cambios.
- factory-boy: Una biblioteca para generar datos de prueba, permitiendo la creación de fixtures para probar aplicaciones Django.
Requisitos de Producción
- gunicorn: Un servidor HTTP WSGI para UNIX, comúnmente utilizado para servir aplicaciones web Python como Django en producción. Está diseñado para ser ligero y rápido, manejando solicitudes concurrentes de manera eficiente.
- psycopg-binary: Un paquete binario para
psycopg
, el adaptador PostgreSQL para Python, que proporciona acceso asíncrono y eficiente a bases de datos PostgreSQL. - django-storages: Una colección de backends de almacenamiento personalizados para Django, permitiendo la integración con varias soluciones de almacenamiento como Amazon S3, Google Cloud Storage y otros, para almacenar y servir archivos de manera eficiente.