Знайте разницу и когда использовать каждый из них

Когда дело доходит до Bottle, Flask и Django, вы обычно видите только два из них, описанных в статье за ​​раз. Однако эти три инструмента помогают выполнять аналогичные задачи, когда дело доходит до разработки веб-приложений с помощью Python. Кажется правильным говорить о сильных и слабых сторонах каждого и о том, когда вы хотите их использовать.

Бутылка

Bottle - это быстрый веб-фреймворк для Python. Он не имеет никаких зависимостей, кроме стандартной библиотеки Python, и настолько легкий, что модуль для него представляет собой один файл. Он обрабатывает все, что вам нужно для создания небольших веб-сайтов или приложений. Это также асинхронно, что позволяет вам легко поддерживать постоянное обновление данных вашего приложения. Еще одна приятная особенность - он поставляется со встроенным сервером разработки HTTP.

Это отличный выбор, если вы создаете что-то маленькое или хотите быстро создать прототип идеи. Поскольку он прост в использовании, он также отлично подходит для начинающих разработчиков. Вы можете легко понять, как использовать Bottle для любого проекта, который вы создаете, и быстро подготовить свое приложение к работе.

Одним из недостатков Bottle является то, что у нее меньше документации и поддержки, чем у Flask или Django. Если вы хотите создать большое и сложное веб-приложение, вы можете найти, что ваши усилия лучше поддерживаются одним из других инструментов. Есть также ряд вещей, которые у Bottle нет встроенных, таких как панель администратора, инфраструктура ORM, поддержка NoSQL, поддержка REST, безопасность, веб-формы или аутентификация. Однако есть ряд плагинов и библиотек, которые вы можете использовать для добавления этих вещей в Bottle, если хотите.

Камнем преткновения, вероятно, станет все, что не нужно работать с большим количеством документации.

Колба

Многие разработчики предпочитают Flask Bottle, потому что они считают, что он предлагает все, что делает Bottle, и даже больше. Я бы сказал, что то, что он имеет по сравнению с Bottle, - это популярность, что приводит к созданию большего количества документации, расширений и плагинов для использования с Flask. Если вы новичок, пытаетесь сделать что-то более сложное, Flask может быть лучшим выбором, чем Bottle, потому что есть вероятность, что кто-то уже задокументировал способ делать то, над чем вы работаете. Это жеребьевка. С Bottle вы, вероятно, сможете прочитать весь код модуля. С Flask вы получите массу контента для поддержки своего проекта.

Flask отлично работает с расширениями. Используя их, вы можете добавить панель администратора, поддержку REST и поддержку веб-форм. Он предлагает встроенную безопасность, но она минимальна. Вы можете повысить безопасность Flask с помощью таких инструментов, как Flask-Security, но вам нужно следить за обновлениями, чтобы исправлять уязвимости по мере их обнаружения.

Джанго

К настоящему времени вы, вероятно, думаете: Эй, я думал, вы сравниваете Bottle, Flask и Django… но вы не упомянули Django в первых двух. Для этого есть причина: Django сильно отличается от Bottle или Flask. Если вы только начинаете и хотите создать образец кода или небольшое приложение, я сразу же порекомендую вам выбрать для своего проекта между Bottle и Flask. Django невероятно мощный инструмент, он делает за вас все, что делает вашу жизнь проще, но требует сложного обучения.

Django - это веб-фреймворк, который позволяет быстро и легко разрабатывать веб-приложения ... если у вас есть время сначала изучить фреймворк. Одна из лучших особенностей - это безопасность. Если вы плохо разбираетесь в безопасности приложений, Django был разработан, чтобы помочь вам защитить ваш сайт. Это дает вам безопасный способ управления учетными записями и паролями и предотвращает совершение ошибок, таких как размещение информации о сеансе в файлах cookie. Он обеспечивает защиту от уязвимостей, таких как SQL-инъекция, межсайтовый скриптинг, подделка межсайтовых запросов и кликджекинг.

Bottle и Flask позволяют создавать сайты, которые включают эти вещи, но они не обрабатываются за вас. Если вы опытный разработчик, который знает, как избежать этих ошибок безопасности, тогда Bottle или Flask могут быть отличным выбором. В противном случае изучение Django может избавить вас от многих проблем с безопасностью.

Что касается документации, Flask, вероятно, все еще превосходит Django. Однако, если вы готовы потратить время на изучение Django, оно того стоит. В нем есть много вещей, которые вы хотите сделать, прямо из коробки. Большинство вещей, которые вы хотите делать (например, обработка сеансов, аутентификация, управление пользователями, управление контентом и т. Д.), Доступны в Django. И хотя документации меньше, есть из чего выбирать.

Заключение

Какой из них выбрать со всей этой информацией? Вот мои рекомендации:

Используйте бутылку, если

  • Вы создаете образец кода. Вы можете использовать встроенный сервер, проверить, что он работает, а затем сразу же сделать свой образец доступным для использования.
  • Вы создаете небольшое веб-приложение. Если у вас нет большого опыта работы с деталями безопасности, тогда ваш проект должен быть чем-то, где безопасность не является такой большой проблемой.
  • Вы хотите чего-то простого.
  • Вы не возражаете, что документации по его использованию не так много.

Используйте Flask, если

  • Вы создаете веб-приложение среднего или большого размера.
  • У вас есть предыдущий опыт работы с безопасностью и вы знаете, как обрабатывать аутентификацию, сеансы, пользователей и пароли.
  • Вы хотите быстро собрать прототип и предпочитаете множество документации, расширений и плагинов простоте Bottle.

Используйте Django, если

  • Вы хотите создать веб-приложение среднего или большого размера.
  • Безопасность - это проблема. Даже если у вас есть опыт, лучше иметь инструмент, помогающий выявлять ошибки, чем большую часть времени делать это самостоятельно.
  • Вы согласны с несколько самоуверенными рамками.
  • У вас есть время изучить фреймворк.

А как насчет обучения?

Если вы учите студентов создавать вещи, возможно, вам захочется продвинуться дальше с помощью инструментов от Bottle до Flask и до Django. Проблема с любым образцом кода Django или обсуждением заключается в том, что для погружения читателю нужно уже знать, как использовать Django. Не сразу понятно, как это работает. Этому нетрудно научиться, но, возможно, потребуется неделя или две, чтобы узнать об этом достаточно, чтобы начать развиваться.