Простой Python. Современный стиль программирования (Любанович) - страница 156

>$ python bottle3.py

Далее перейдите в браузере по ссылке http://localhost:9999/echo/Mothra. Вы должны увидеть следующее:

>Say hello to my little friend: Mothra!

Оставьте bottle3.py работать еще на пару минут, чтобы мы могли попробовать что-нибудь еще. Вы проверяли, что эти примеры работают, вводя URL в браузер и глядя на отображаемые страницы. Вы также можете использовать клиентские библиотеки вроде requests, чтобы они выполняли работу за вас. Сохраните этот код как bottle_test.py:

>import requests

>resp = requests.get('http://localhost:9999/echo/Mothra')

>if resp.status_code == 200 and \

>··resp.text == 'Say hello to my little friend: Mothra!':

>····print('It worked! That almost never happens!')

>else:

>····print('Argh, got this:', resp.text)

Отлично! Теперь запустите этот код:

>$ python bottle_test.py

В терминале вы должны увидеть следующее:

>It worked! That almost never happens!

Перед вами небольшой пример юнит-теста. В главе 12 вы можете получить более подробную информацию о том, почему тесты — это хорошо и как написать их с помощью Python.

У фреймворка Bottle больше возможностей, чем я вам показал. В частности, когда вызываете функцию run(), можете попробовать добавить следующие аргументы:

• debug=True — создает страницу отладки, если вы получаете ошибку HTTP;

• reloader=True — перезагружает страницу в браузере, если вы измените хотя бы небольшой кусочек кода.

Все это хорошо задокументировано на сайте разработчика http://bottlepy.org/docs/dev/.

Flask

Bottle — это хороший фреймворк для того, чтобы начать работу. Но если вам нужно больше возможностей, попробуйте Flask. Он был создан в 2010 году как первоапрельская шутка, но реакция энтузиастов вдохновила его автора, Армина Ронахера (Armin Ronacher), на то, чтобы сделать его настоящим фреймворком. Он назвал результат Flask («склянка»), обыгрывая название Bottle — «бутылка».

Flask в использовании почти так же прост, как и Bottle, но он поддерживает множество расширений, которые могут оказаться полезными в профессиональной веб-разработке, например аутентификацию с помощью Facebook и интеграцию с базами данных. Этот фреймворк мне нравится больше других веб-фреймворков Python, поскольку в нем сбалансированы простота использования и богатый набор функций.

Пакет Flask включает в себя библиотеку package WSGI werkzeug и библиотеку шаблонов jinja2. Вы можете установить его с помощью терминала:

>$ pip install flask

Переделаем наш последний пример с использованием фреймворка Flask. Однако для начала нам нужно внести несколько изменений.

Во Flask папка по умолчанию для статических файлов называется static, и URL для таких файлов тоже начинается со /static. Мы изменяем папку на '.' (текущая папка) и префикс URL на ' ' (пустой), чтобы позволить URL / отображать файл index.html.