Flask это микрофреймворк для Python, основанный на Werkzeug, Jinja 2 и хороших намерениях.
В этой статье мы рассмотрим пример "Hello World" на Flask, который описан на главной странице сайта этого фреймворка.
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
После установки Flask с помощью pip install Flask
я могу запустить приведенный выше скрипт через командную строку:
$ python examples/flask/hello_world.py
И увижу такой ответ:
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
Затем я открыл браузер по указанному адресу и там действительно отображался "Hello World!", тем временем в консоли я увидел:
127.0.0.1 - - [03/Feb/2015 09:43:14] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [03/Feb/2015 09:43:14] "GET /favicon.ico HTTP/1.1" 404 -
Первая запись это мой запрос, вторая запись относится к браузеру, попытавшемуся загрузить иконку сайта. В конце первой строки приведен HTTP-статус 200, который указывает на успешное выполнение запроса, вторая строка заканчивается HTTP-статусом 404, обозначающим "Not found".
Код приложения выглядит достаточно очевидным.
Мы объявили функцию с произвольным именем (hello
), и использовали декоратор @app.route("/")
, чтобы связать
запрос на /
с этой функцией.
@app.route("/")
def hello():
return "Hello World!"
Когда Flask запущен, он принимает HTTP-запросы, а затем перенаправляет их на функции, основываясь на пути, указанном в запросе.
Таким образом код выше означает - если запрос приходит на /
, тогда запустить функцию hello
.
И в конце скрипта мы видим следующее:
if __name__ == "__main__":
app.run()
Код app.run()
запускает веб-сервер с приложением, основанным на Flask.
Код if __name__ == "__main__":
позволяет запустить веб-сервер только в случае, если этот код запускается как скрипт.
Это позволит нам использовать повторно код из этого файла как часть другого веб-приложения на Flask.
(В Perl такое поведение называют Modulino.)