zabika.ru 1 2 ... 7 8

Flask - является микрофреймворком для создания вебсайтов на языке Python. В основу статьи положен перевод из официальной документации Flask. Поэтому в ней имеется обращение от первого лица, то есть от создателя фреймворка Армина Ронахера.


Flask в данном контексте переводится как пороховой рожок, на это указывает официальное лого.

Вводное слово

Что значит "микро"?


На мой взгляд "микро" в фреймворке относится не только к простоте и небольшому размеру базы, но это также может означать тот факт, что он не предлагает вам много проектных решений. Несмотря на то, что Flask использует нечто подобное ввиде шаблонизатора, мы не будем принимать подобные решения для вашего хранилища данных или других частей.Тем не менее, для нас термин "микро", не означает, что вся реализация должна вписываться в один файл.

Одно из проектных решений во Flask, что простые задачи должны быть простыми; они не должны занимать много кода, и это не должно ограничивать вас. Поэтому мы сделали несколько вариантов дизайна, некоторые люди могут посчитать это удивительным и не общепринятым. Например, Flask использует локальные треды внутри объектов, так что вы не должны передавать объекты в пределах одного запроса от функции к функции, оставаясь в безопасном треде. Хотя это очень простой подход и позволяет сэкономить много времени, это также может вызвать некоторые проблемы для очень больших приложений, поскольку изменения в этих локальных тредах-объектов может произойти где угодно в том же треде. Для того, чтобы решить эти проблемы, мы не скрываем от вас локальные треды-объекты, вместо этого охватываем их и предоставляем вам много инструментов, чтобы сделать работу с ними настолько приятным насколько это возможно.

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

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

Безопасность


Различными способами можно скомпрометировать ваше безопасное веб-приложение. Так как веб-программирование не безопасное занятие. Вы позволяете пользователям оставлять информацию на сервере, следовательно можно найти способ взломать ваше веб-приложение. Flask защищает вас от наиболее распространенных и известных способов взлома, такие как XSS (cross-site scripting). До тех пор, пока вы сами сознательно не отмечаете опасный html как безопасный. Flask и шаблонизатор Jinja2 защищает вас, но все равно могут найтись способы вызвать проблемы в безопасности.

Статус насчет Python 3


Werkzeug и Flask будут портированы на Python 3. Мы обеспечим вас необходимыми подсказками, как модернизировать ваши приложения для третей версии. В настоящий момент мы настоятельно рекомендуем разрабатывать под версиями 2.6 и 2.7 с активированными предупреждениями Python 3. Если Вы планируете в скором времени перейти на третью версию, мы рекомендуем прочитать "Как написать код совместимый с Python3"

Установка


  • Jinja2 - движок темплейтов

  • Werkzeug - WSGI тулкит, это набор инструментов стандартного python-интерфейса для взаимодействия между веб-приложениями и различными серверами разработки и развертывания.

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



следующая страница >>