Мінімальний додаток на Flask

Мінімальний додаток Flask виглядає приблизно так:

from flask import Flask  
app = Flask(__name__)   

@app.route('/')  
def hello_world():  
    return 'Hello World!'    

if __name__ == '__main__':  
    app.run() 

Просто збережіть його під ім'ям на зразок hello.py і запустіть за допомогою вашого інтерпретатора Python. Тільки, будь ласка, не давайте додатку ім'я flask.py, так як це викличе конфлікт з самим Flask.

$ python hello.py
 * Running on http://127.0.0.1:5000/

Прослідувавши за посиланням http://127.0.0.1:5000/ ви побачите ваше вітання світу.

Отже, що ж робить цей код?

  1. Спочатку ми імпортували клас Flask. Екземпляр цього класу і буде вашим WSGI-додатком.
  2. Далі ми створюємо екземпляр цього класу. Перший аргумент - це ім'я модуля або пакету програми. Якщо ви використовуєте єдиний модуль (як у цьому прикладі), вам слід використовувати __name__, тому що в залежності від того, чи запущений код як додаток, або був імпортований модуль, це ім'я буде різним ('__main__' або актуальне ім'я імпортованого модуля відповідно). Це потрібно, щоб Flask знав, де шукати шаблони, статичні файли та інше. Для додаткової інформації дивіться документацію Flask.
  3. Далі, ми використовуємо декоратор route(), щоб сказати Flask, який з URL повинен запускати нашу функцію.
  4. Функція, якою дано ім'я, що використовується також для генерації URL - адрес для цієї конкретної функції, повертає повідомлення, яке ми хочемо відобразити в браузері користувача.
  5. Нарешті, для запуску локального сервера з нашим додатком, ми використовуємо функцію run(). Завдяки конструкції if __name__ == '__main__' можна бути впевненим, що сервер запускається тільки при безпосередньому виклику скрипта з інтерпретатора Python, а не при його імпорті в якості модуля.

Для зупинки сервера, натисніть Ctrl+C.

Публічно доступний сервер

Якщо ви запустите сервер, ви помітите, що він доступний тільки з вашого власного комп'ютера, а не з будь-якого іншого в мережі. Так зроблено за замовчуванням, тому що в режимі налагодження користувач програми може виконати код на Python на вашому комп'ютері.
Якщо у вас відключена опція debug або ви довіряєте користувачам в мережі, ви можете зробити сервер публічно доступним, просто змінивши виклик методу run() таким ось чином:

app.run(host='0.0.0.0')  

Це вкаже вашій операційній системі, щоб вона слухала мережу з усіх публічних IP-адрес.