Bottle — это мини-фреймворк для Python, позволяющий писать веб-приложения с высокой скоростью. Вот только слово «мини» добавляет ограничения, например, здесь нет быстрого способа создать административную панель. Если нужна работа с БД, то ее надо подключать отдельно. Таким образом, bottle — это инструмент для написания линейных web-приложений, которые не требуют слишком сильного взаимодействия между элементами приложения. Если вам надо написать handler, который будет принимать ссылку на файл, а потом скачивать его в s3 с какой-то обработкой, то для проверки функционала bottle отлично подойдет. Для работы с bottle достаточно описывать сами обработчики, например:
from bottle import route, run, template
@route('/hello/<name>')
def index(name):
return template('<b>Hello {{name}}</b>!', name=name)
run(host='localhost', port=8080)
(Пример из [документации][1].) При написании более смысловых функций (например, телефонная книга с сохранением в БД), очень быстро возникает необходимость работы то с БД, то с кэшем, то с сессиями. Это порождает необходимость пихать функционал работы с БД в сам обработчик, затем выносить в отдельные модули, чтобы не дублировать код. А после этого код CRUDL для разных объектов переписываем в виде что-то типа мета-функций. Но можно пойти и по другому пути: начать использовать [bottle plugin][2]. О механизме плагинов и пойдет речь в этой публикации. [Читать дальше →][3]
[1]:
http://bottlepy.org/docs/dev/index.html
[2]:
http://bottlepy.org/docs/dev/plugins/index.html
[3]:
http://habrahabr.ru/post/250831/#habracut