Bottle - очень маленький фреймворк, написанный на питоне. Весь его код занимает всего 1 файл и ~4000 строк. И тем не менее, Bottle вполне себе самодостаточен и может послужить вам верой и правдой, если возникла необходимость создать небольшой single app. В своем арсенале маленький фреймворк содержит:
- Wsgi-сервер
- Маршрутизация
- Авторизация
- Middlewares
- Поддержка плагинов
- Собственный язык html-шаблонов
- Множество расширений (в основном, также одностраничных)
- и многое другое!
Мне было интересно оценить возможности Bottle и я создал небольшой блог на его основе. Первая проблема, с которой я столкнулся - вы можете залогиниться, но вот с тем, чтобы разлогиниться возникают сложности.
Bottle поддерживает Basic Auth, например:
Но с logout'ом возникают проблемы - его просто нет. Никто не рассчитывал, что вы захотите выйти из профиля. Единственное обходное решение - создать отдельную страницу, например, /logout и возвращать 401 ошибку. Такая операция сбрасывает environment и вот вы снова разлогинены! Такое поведение нелогично и неожиданно для разработчика и для пользователя, конечно - никто не ожидает получить 401 ошибку при попытке выйти из профиля.
Слегка скрасить пилюлю позволяет возможность Bottle'а кастомизировать страницы с ошибками. С этой возможностью уже можно заставить страницу с 401Error выглядеть так, как этого хочется вам.