Flask-Admin против Flask-AppBuilder

Я новичок в Flask и заметил, что есть два подключаемых модуля, обеспечивающих просмотр CRUD и авторизованный вход: Flask-Admin и Flask-AppBuilder.

Эти две функции меня интересуют наряду с удобными представлениями Master-Detail для моей модели, где я могу видеть как строки основной таблицы, так и соответствующие детали на одном экране.

Есть идеи, какой из них предпочесть? Я вижу, что у Flask-AppBuilder гораздо больше коммитов на Github, а у Flask-Admin гораздо больше звездочек.

Как определить разницу, не тратя слишком много времени на неправильный выбор?


person petroslamb    schedule 08.05.2015    source источник


Ответы (2)


Я разработчик Flask-AppBuilder, так что здесь может быть сильная предвзятость. Я постараюсь изложить вам свою самую честную точку зрения. Я не так хорошо знаю Flask-Admin, поэтому, вероятно, сделаю несколько ошибок.

Flask-Admin и Flask-AppBuilder:

  • Оба предоставят вам интерфейс администратора для Flask с начальной загрузкой.
  • Оба сделают все возможное, чтобы убраться с вашего пути.
  • Оба помогут вам разработать более объектно-ориентированный стиль Flask.
  • Оба позволят вам переопределить почти все в шаблонах администратора.
  • Будут ли оба поддерживать Babel.
  • Оба вдохновлены Django-Admin.

Плюсы Flask-AppBuilder:

  • Имеет более приятный внешний вид (предвзятость? может быть...).
  • За вас позаботились о безопасности и поддерживают стандартную базу данных, LDAP, OpenID, интегрированный веб-сервер (REMOTE_USER), а в ближайшем будущем и OAuth. Позволит вам расширить пользовательскую модель и представления безопасности.
  • Гранулированные разрешения, создает одно разрешение для каждого метода и действия, представленных в Интернете (вы должны попробовать).
  • Вы можете легко отображать графики Google.
  • Чем меньше проект, тем проще запрашивать новые функции и объединять запросы на вытягивание.
  • Представления MasterDetail и несколько представлений можно легко настроить.
  • Бэкэнды: поддерживает SQLAlchemy, MongoEngine, GenericInterface (вы можете интегрироваться со своими собственными встроенными данными, все еще немного бета).

Плюсы Flask-Admin:

  • Вы должны собрать свою собственную безопасность (модели, представления, аутентификацию и т. д.), хотя она готова хорошо интегрироваться с flask-security. Это может быть за или против в зависимости от того, что вы хотите.
  • Встроенный файловый администратор.
  • Большой проект с большим сообществом.
  • Серверные части: поддерживает SQLAlchemy, GeoAlchemy, MongoEngine, Pewee и PyMongo.
  • Улучшенная поддержка MongoEngine (EmbeddedDocument, ListFields и т. д.).

В целом, я думаю, что Flask-Admin вообще не делает никаких предположений, как Flask, вам нужно больше кодировать, но это позволит вам быть более свободным. Flask-AppBuilder делает некоторые предположения (о безопасности), вам придется писать гораздо меньше кода, но некоторые вещи могут вам помешать, если вы создаете очень специфические модели безопасности.

Надеюсь, это поможет вам и другим, я старался изо всех сил, чтобы избежать предвзятости.

person dpgaspar    schedule 17.05.2015
comment
Спасибо за ваш самый честный взгляд. Я вижу, что AppBuilder имеет больше готовых функций. Также приятно знать, что переопределять вещи так же просто, как и в Flask-Admin. Подожду некоторое время для любых возражений, сделайте мой выбор и примите ваш ответ. - person petroslamb; 18.05.2015
comment
Я только что наткнулся на Flask-AppBuilder. Из коробки шаблоны выглядят намного приятнее, чем во Flask-Admin. Кроме того, я ценю, что о безопасности позаботились, тем более, что, как я обнаружил, это PITA, чтобы начать работать. У нас намечается довольно большой проект, и я уверен, что Flask-AppBuilder поможет ускорить доставку функционального прототипа нашим конечным пользователям намного раньше, чем Flask-Admin. С нетерпением жду этого! - person horcle_buzz; 21.10.2015

Для меня главная особенность — мастер/деталь. Это привело меня к использованию Flask AppBuilder для создания ApiLogicServer:

С помощью одной команды создайте API базы данных, чтобы разблокировать разработку пользовательского интерфейса. Кроме того, многостраничное веб-приложение для привлечения бизнес-пользователей на ранних этапах проекта. Декларируйте логику с помощью правил, подобных электронным таблицам — в 40 раз более кратким, чем код, расширяемый с помощью Python — для невероятной гибкости бизнеса.

person val    schedule 28.05.2021