Данная тема не касается на прямую автоматизации, но все равно хочу в кратце рассказать вам, потому что данный фреймворк мне сильно понравился.
Очень часто бывает, что нужен быстрый и простой фреймворк для небольших web приложений. В таком случае здорово подойдет - Bottle!
Bottle - это быстрый и легкий WSGI (Web Server Gateway Interface) микро веб-фреймворк для Python. Его удобно использоваться как основу для небольшого фронтеда, внутреннего сервиса не ориентированного на большие нагрузки.
WSGI - это стандарт обмена данными между веб-сервером и веб-приложением.
Достоинства Bottle:
- Bottle не имеет никаких зависимостей, кроме стандартной библиотеки Python
- URL routing с поддержкой URL параметров
- Встроенный HTTP сервер
- Поддержка шаблонов
- Работа с GET и POST запросами
- Поддержка адаптеров для большого числа WSGI/HTTP-серверов
- Удобная отладка в “debug” режиме
- Авто-абновление (позволяет автоматически выявлять изменения в скрипте и загружать новый вариант, когда он будет вызван повторно, без перезапуска сервера. )
- Error-route для различных ошибок
- Можно функцию связать более чем с одним маршрутом
- Работа с обычными и шифрованными cookies
Из особенностей:
Нет статического контента. Каждая страница отображается в браузере после динамической генерации, когда вызывается адрес страницы. Таким образом, например, чтоб подключить CSS, либо добавить картинку , нужно использовать static_file метод
Официальная документация: http://bottlepy.org
Пример создания странички за 15 минут:
**1.**Устанавливаем библиотеку:
easy_install bottle
**2.**Главный код приложения page.py:
import datetime
from bottle import route, run, template, static_file, error
@route('/')
def index():
message = "Automated-testing.info"
now_time = datetime.datetime.now()
cur_hour = now_time.hour
return template('page_template', cur_hour=cur_hour, msg=message)
@route('/static/<filename>')
def server_static(filename):
return static_file(filename,
root='/home/katerina/PycharmProjects/Example/static')
@route('/images/<filename>')
def send_image(filename):
return static_file(filename,
root='/home/katerina/PycharmProjects/Example/images',
mimetype='image/png')
@error(404)
@error(403)
def mistake(code):
return 'Error on page'
if __name__ == "__main__":
run(host='localhost', port=8080)
**3.**Шаблон page_template.tpl:
<!DOCTYPE html>
<html>
<head>
<link href="static/style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div>
<img alt="Logo images" height="130" width="100" src="images/logo.png" alt="Logo images">
</div>
<p>{{msg}}</p>
%if cur_hour in range(6,10):
<h1>Good morning!!!</h1>
%elif cur_hour in range(11,18):
<h1>Good day!!!</h1>
%elif cur_hour in range(19,23):
<h1>Good evening!!!</h1>
%else:
<h1>Good night!!!</h1>
%end
</body>
</html>
Готово!
Результат: