Hello World с Flask и Python
examples/flask/hello_world.py
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.)

Published on 2015-05-16