Saltar a contenido
Traducción automática supervisada

Este contenido se traduce mediante generación automática guiada por glosarios y guías de estilo revisados por personas. Dado que el texto no se revisa manualmente línea por línea, pueden producirse errores ocasionales o expresiones poco naturales.

En caso de cualquier discrepancia, la versión en inglés constituye la autoridad y la fuente de referencia.

Leer la versión original en inglés

Comparación de starlette-admin, Django Admin y Flask-Admin

Django Admin, Flask-Admin y starlette-admin resuelven el mismo problema: generan una interfaz de administración lista para producción a partir de sus modelos de datos, de modo que usted no tiene que escribir pantallas CRUD a mano. Se diferencian en los stacks web a los que se dirigen, los ORM que soportan y cuánto incluyen de fábrica frente a lo que le dejan a usted.

Esta página compara los tres. Si ya conoce Django Admin o Flask-Admin y desea una traducción directa de la API, consulte la guía de migración correspondiente:

Posicionamiento de un vistazo

Django Admin Flask-Admin starlette-admin
Framework web Solo Django Solo Flask Starlette, FastAPI y cualquier aplicación ASGI que pueda montar sub-aplicaciones
Modelo de ejecución Síncrono (WSGI primero) Síncrono (WSGI) Async-first (ASGI)
Capa de datos Solo Django ORM SQLAlchemy, MongoEngine, peewee, pymongo SQLAlchemy, SQLModel, MongoEngine, Beanie, Tortoise ORM o un backend personalizado
Toolkit de UI Plantillas de Django, tema clásico de administración Bootstrap 2/3/4 Tabler (Bootstrap 5), modo oscuro, temas personalizados
Incluido con el framework Sí, parte de Django No, paquete separado No, paquete separado
Autenticación Integrada mediante django.contrib.auth Tráigala usted mismo (is_accessible) AuthProvider / OAuthProvider conectables, tráigalo todo con su propio almacén de usuarios

Cuándo encaja cada framework

Django Admin

Django Admin encaja en aplicaciones nativas de Django. Es maduro y se integra con django.contrib.auth, por lo que obtiene usuarios, grupos, permisos por modelo e historial de cambios sin ninguna configuración. Solo funciona dentro de Django.

Flask-Admin

Flask-Admin llevó la generación automática a Flask y popularizó el estilo de configuración basado en ModelView. Es síncrono y está ligado a Flask, por lo que no funciona sobre un stack asíncrono.

starlette-admin

starlette-admin se dirige al stack asíncrono de Python. Si su aplicación usa FastAPI o Starlette, monta la administración en su aplicación y esta se ejecuta en el mismo event loop. Funciona con capas de datos SQL y NoSQL, conserva el estilo de configuración ModelView de Flask-Admin y cubre la profundidad de funcionalidades que los usuarios de Django Admin esperan: inlines, acciones por lotes, permisos por petición e internacionalización.

Matriz de funcionalidades

Leyenda:

  • Sí: Incluido de fábrica
  • Parcial: Posible mediante paquetes de terceros o código personalizado
  • No: No disponible
Funcionalidad Django Admin Flask-Admin starlette-admin
Vistas CRUD autogeneradas
Búsqueda de texto completo search_fields column_searchable_list searchable_fields
Filtros por columna list_filter column_filters Constructor visual de filtros con grupos AND/OR
Ordenación y orden predeterminado sortable_fields, fields_default_sort
Edición inline en la vista de lista list_editable column_editable_list inline_editable_fields
Formularios inline para modelos relacionados TabularInline / StackedInline inline_models InlineModelView
Acciones por lotes actions @action @action con diálogos de confirmación y formularios personalizados
Acciones por fila Parcial plantillas personalizadas Parcial formateadores personalizados @row_action, @link_row_action
Exportación de datos Parcial django-import-export CSV y otros CSV, JSON, Excel, PDF
Importación de datos Parcial django-import-export No CSV, JSON, Excel con validación previa y upsert
Carga de archivos e imágenes FileField / ImageField Parcial requiere configuración adicional Almacenamiento local y en S3
Widgets del dashboard Parcial temas de terceros Parcial vista de índice personalizada Sistema de widgets integrado
Páginas independientes personalizadas URLs personalizadas de AdminSite BaseView + @expose CustomView
Control del diseño del formulario fieldsets form_rules form_layout con pestañas y rejillas
Autenticación django.contrib.auth No tráigala usted mismo AuthProvider u OAuthProvider
Permisos por modelo framework de permisos sobrescribiendo los flags can_* métodos por petición
Permisos por campo Parcial get_readonly_fields No can_access_field
Hooks del ciclo de vida save_model, signals on_model_change Hooks del ciclo de vida y eventos
Protección CSRF middleware de Django mediante Flask-WTF Integrada en Admin
Historial de cambios / registro de auditoría LogEntry No Parcial construya el suyo propio con eventos
Internacionalización mediante Flask-Babel I18nConfig
Múltiples instancias de administración múltiples AdminSites Múltiples montajes de Admin
Soporte de ORM asíncrono Parcial No SQLAlchemy asíncrono, Beanie, Tortoise ORM

Ventajas y desventajas

  • Sistema de usuarios completo: Django Admin incluye un sistema de usuarios completo. django.contrib.auth gestiona usuarios, grupos, permisos y contraseñas por usted. En starlette-admin, usted implementa authenticate() contra su propio almacén de datos, lo que supone más configuración al principio pero más libertad arquitectónica más adelante.
  • Historial de cambios automatizado: Django Admin registra el historial de cambios en LogEntry. En starlette-admin, usted construye la pista de auditoría suscribiéndose a los eventos del ciclo de vida. Requiere unas pocas líneas de código, pero no es automático.
  • Ecosistema de terceros: Django Admin cuenta con un amplio ecosistema de paquetes de terceros para temas, widgets y flujos de trabajo de datos. starlette-admin cubre muchas de esas funcionalidades de forma nativa, pero es posible que una extensión especializada de la que dependa aún no exista.
  • Gestión de archivos: Flask-Admin incluye FileAdmin, un explorador del sistema de archivos del servidor. starlette-admin gestiona los archivos adjuntos a los campos del modelo mediante disco local o S3, y no dispone de un explorador de archivos del servidor de propósito general.

Próximos pasos