Мир веб-фреймворков Python предоставляет множество вариантов. Некоторые из известных фреймворков, которые следует учитывать, — это Django, Flask, Bottle, Diesel, Web2py, Pyramid, Falcon, Pecan и т. Д., Которые конкурируют за долю разработчиков. Фреймворки, такие как Pyramid, Django, Web2py и Flask, идеальны с их списком плюсов и минусов; Выбор одного из них для вашего проекта — трудный выбор.
Dash полностью разработан для различного набора потребностей. Поэтому, как разработчик, вы хотите сократить множество вариантов до того, который поможет вам завершить ваш проект вовремя и с совершенством.
Если мы сравним фреймворки Flask, Pyramid и Django, Flask — это микро-фреймворк, в первую очередь предназначенный для небольших приложений с более простыми требованиями, тогда как Pyramid и Django нацелены на более крупные приложения. Пирамида построена с учетом гибкости и свободы, поэтому у разработчика есть подходящие инструменты для проекта. В случае с пирамидой разработчик может свободно выбирать базу данных, структуру URL, стиль шаблона и многое другое. Тем не менее, Django включает в себя все батареи, которые нужны веб-приложению, поэтому нам просто нужно установить Django и начать работать.
Django поставляется с ORM, в то время как Pyramid и Flask оставляют разработчику выбирать, как (или если) они хотят, чтобы их данные были сохранены. Как правило, наиболее распространенным ORM для веб-приложений, не относящихся к Django, является SQLAlchemy, однако, другими вариантами могут быть DjangoDB, MongoDB, LevelDB и SQLite.
Будучи разработчиком, если мне придется выбирать между Django и Web2py для моего проекта. Мне нужно иметь представление о преимуществах и ограничениях фреймворка. Итак, давайте сравним Django и Web2py —
Джанго
Сообщество Django — большой плюс. На самом деле это означает, что для разработчика богатство ресурсов будет больше. В частности, это сводится к —
- Документация
- Ресурсы с открытым исходным кодом
- Поддержка сторонних приложений
- Поддержка развертывания
- IRC-каналы с полезными разработчиками
У Django очень большое сообщество разработчиков и документации. Это правильная структура, когда мы имеем дело с написанием сложного бэкэнда, поскольку она предоставляет множество сторонних приложений, которые позволяют автоматизировать такие вещи, как логика пользователя (регистрация, аутентификация), асинхронные задачи, создание API, блоги и т. Д.
web2py
Web2py хорошо подходит для быстрой разработки простых веб-приложений или http-серверов. Ниже приведены некоторые преимущества и ограничения web2py.
Преимущества Web2py
Ниже приведены некоторые преимущества платформы Web2py:
-
Web2py является потенциальной платформой по сравнению с Django и Flask с точки зрения скорости и простоты разработки. Поскольку Web2py использует основанный на Python язык шаблонов, это позволяет разработчикам Python начинать писать код сразу после понимания основ написания шаблонов как представлений.
-
Web2py может запускать скомпилированный код Python в качестве оптимизации, чтобы уменьшить время выполнения и позволить вам распространять свой код скомпилированным способом.
Web2py является потенциальной платформой по сравнению с Django и Flask с точки зрения скорости и простоты разработки. Поскольку Web2py использует основанный на Python язык шаблонов, это позволяет разработчикам Python начинать писать код сразу после понимания основ написания шаблонов как представлений.
Web2py может запускать скомпилированный код Python в качестве оптимизации, чтобы уменьшить время выполнения и позволить вам распространять свой код скомпилированным способом.
Ограничения Web2py
Ниже приведены некоторые ограничения платформы:
-
Web2py поддерживает doctests, но не поддерживает модульное тестирование. В настоящее время doctests не являются оптимальным выбором из-за их ограниченного объема.
-
Нет различия между режимом производства и разработки. В случае возникновения исключения билет генерируется все время, и вам придется перейти к билету, чтобы проверить ошибку. Это может быть полезно в случае производственного сервера, но будет затруднено в среде разработки, так как разработчикам действительно нужно сразу увидеть ошибку, а не проверять номер заявки.
-
Web2py имеет хороший уровень абстракции базы данных (DAL), который позволяет вам абстрагировать многие типы механизмов баз данных, но в нем отсутствует мощный ORM. Если вы имеете дело с относительно большой моделью, ваш код будет разбросан по всем вложенным определениям и атрибутам, что усложнит ситуацию.
-
Мы не можем использовать стандартные инструменты разработки Python без изменений, так как web2py действительно плохо поддерживает IDE.
Web2py поддерживает doctests, но не поддерживает модульное тестирование. В настоящее время doctests не являются оптимальным выбором из-за их ограниченного объема.
Нет различия между режимом производства и разработки. В случае возникновения исключения билет генерируется все время, и вам придется перейти к билету, чтобы проверить ошибку. Это может быть полезно в случае производственного сервера, но будет затруднено в среде разработки, так как разработчикам действительно нужно сразу увидеть ошибку, а не проверять номер заявки.
Web2py имеет хороший уровень абстракции базы данных (DAL), который позволяет вам абстрагировать многие типы механизмов баз данных, но в нем отсутствует мощный ORM. Если вы имеете дело с относительно большой моделью, ваш код будет разбросан по всем вложенным определениям и атрибутам, что усложнит ситуацию.
Мы не можем использовать стандартные инструменты разработки Python без изменений, так как web2py действительно плохо поддерживает IDE.
Фреймворки Django и Web2py являются фреймворками с полным стеком. Это означает, что они предоставляют весь необходимый код — от генераторов форм до шаблонов макетов и проверки форм, и позволяют вам писать вещи в соответствии с вашими конкретными потребностями.
Тем не менее, если вы хотите создать полнофункциональный веб-сайт с такими неструктурированными фреймворками, как Flask и Pyramid, вам нужно будет добавить много кода и лишних битов самостоятельно. Это требует много навыков и времени.
Тире
Dash полностью предназначен для решения конкретной задачи по созданию реактивной структуры для панелей мониторинга. Dash by Plotly — отличный способ для разработчика Python создавать интерактивные веб-приложения без необходимости изучать Javascript и интерфейсную веб-разработку. Dash построен поверх Flask, Plotly.js, React и React Js.
Нет никакого сравнения между Dash и другими фреймворками (упомянутыми выше), так как они относятся к разным категориям фреймворков. Ниже приведены некоторые из причин, по которым предпочтение отдается тире перед другими интерактивными средами панели мониторинга (Jupiter Dashboards, matplotlib и др.) —
-
С помощью всего лишь 50 строк кода вы можете написать простое Dash-приложение «hello world», так как Dash требует совсем небольшого объема.
-
Целые приложения Dash написаны на языке Python, наиболее предпочтительном языке в мире.
-
В своем собственном коде Python вы можете связать интерактивные компоненты Dash, такие как выпадающий список, ввод текста, ползунки и графики, с реактивными обратными вызовами Dash.
-
Сложные пользовательские интерфейсы в приложениях Dash могут иметь несколько входов, несколько выходов и входов, что зависит от других входов.
-
Одновременно, несколько пользователей могут работать над приложениями Dash.
-
Для создания ваших собственных компонентов Dash с помощью React, dash использует React.js для визуализации компонентов и включает систему плагинов.
-
Разработчики или авторы могут создавать приложения для работы с приборной панелью, которые реагируют на щелчки, зависания или выбор точек на графике, поскольку компоненты графика Dash являются интерактивными.
С помощью всего лишь 50 строк кода вы можете написать простое Dash-приложение «hello world», так как Dash требует совсем небольшого объема.
Целые приложения Dash написаны на языке Python, наиболее предпочтительном языке в мире.
В своем собственном коде Python вы можете связать интерактивные компоненты Dash, такие как выпадающий список, ввод текста, ползунки и графики, с реактивными обратными вызовами Dash.
Сложные пользовательские интерфейсы в приложениях Dash могут иметь несколько входов, несколько выходов и входов, что зависит от других входов.
Одновременно, несколько пользователей могут работать над приложениями Dash.
Для создания ваших собственных компонентов Dash с помощью React, dash использует React.js для визуализации компонентов и включает систему плагинов.
Разработчики или авторы могут создавать приложения для работы с приборной панелью, которые реагируют на щелчки, зависания или выбор точек на графике, поскольку компоненты графика Dash являются интерактивными.
Заключение
Мы можем сделать вывод, что выбор правильной платформы из множества доступных платформ Python зависит исключительно от типа проекта, сложности, проекта для малого или корпоративного уровня, вида поддержки сообщества или онлайн-ресурса, масштабируемости, безопасности и т. Д.
Вышеупомянутые платформы Python являются лучшими в своем классе, но имеют свои преимущества и недостатки (в зависимости от требований проекта). Таким образом, один тип фреймворка не подходит для всех видов проектов.