Предварительное слово для опытных программистов
Локальные переменные потоков в Flask
Одним из решений при проектировании Flask было сделать простые задачи простыми; они не должны требовать много кода, но и не должны вас ограничивать. Из-за этого Flask использует несколько решений, которые некоторые могут считать удивительными или нестандартными. Например, Flask использует локальные объекты потоков в своей внутренней работе, чтобы вам не приходилось передавать объекты от функции к функции внутри запроса, чтобы обеспечить безопасность потоков. Этот подход удобен, но требует действительного контекста запроса для инъекции зависимостей или при попытке повторного использования кода, использующего значение, связанное с запросом. Проект Flask честен по поводу локальных переменных потоков, не скрывает их и указывает в коде и документации, где они используются.
Разработка веб-приложений с осторожностью
Всегда помните о безопасности при создании веб-приложений.
Если вы создаёте веб-приложение, вы, скорее всего, позволяете пользователям регистрироваться и оставлять свои данные на вашем сервере. Пользователи доверяют вам свои данные. И даже если вы единственный пользователь, который может оставить данные в вашем приложении, вам всё равно нужно хранить эти данные безопасно.
К сожалению, существует множество способов компрометации безопасности веб-приложения. Flask защищает вас от одной из наиболее распространённых проблем безопасности современных веб-приложений: межсайтового скриптинга (XSS). Если вы не помечаете небезопасный HTML как безопасный, Flask и базовая шаблонная система Jinja2 позаботятся об этом. Но существует много других способов создания проблем с безопасностью.
Документация предостережёт вас об аспектах веб-разработки, требующих внимания к безопасности. Некоторые из этих проблем безопасности намного сложнее, чем можно себе представить, и мы иногда недооцениваем вероятность того, что уязвимость будет использована – пока какой-нибудь хитрый злоумышленник не найдёт способ использовать наши приложения. И не думайте, что ваше приложение не достаточно важно, чтобы привлечь злоумышленника. В зависимости от типа атаки, есть большая вероятность, что автоматические боты будут пытаться заполнить вашу базу данных спамом, ссылками на вредоносное ПО и тому подобным.
Flask ничем не отличается от других фреймворков в том, что вам, как разработчикам, необходимо создавать приложения с осторожностью, следя за уязвимостями при создании по вашим требованиям.
Поддержка Python 3 в Flask
Flask, его зависимости и большинство расширений Flask поддерживают Python 3. Если вы хотите использовать Flask с Python 3, ознакомьтесь со страницей Поддержка Python 3.
Продолжить на Установка или Быстрый старт.
© 2007–2020 Pallets
Licensed under the BSD 3-clause License.
https://flask.palletsprojects.com/en/0.12.x/advanced_foreword/