Введение в Bottle
Bottle — это лёгкий и простой микрофреймворк на Python для создания веб-приложений и REST API. Он написан в одном файле, не требует внешних зависимостей и идеально подходит для небольших проектов, прототипов, встроенных систем и микросервисов. Bottle обеспечивает всё необходимое для запуска веб-приложения: маршруты, шаблоны, обработку форм, сессии и работу с файлами.
Особенности и преимущества Bottle
-
Один файл, без внешних зависимостей
-
Простая и понятная архитектура
-
Встроенный шаблонизатор и HTTP-сервер
-
Поддержка JSON, файлов, форм, cookie
-
Совместимость с WSGI, возможность развёртывания на любом сервере
-
Подходит для REST API, микросервисов и скриптов
Установка и базовая настройка
Установка Bottle:
Создание файла app.py
.
Создание первого Bottle-приложения
Запуск:
Обработка маршрутов и параметров
Поддержка типов:
Поддержка методов GET, POST, PUT, DELETE
Работа с шаблонами и HTML-формами
Файл templates/hello.tpl
:
В app.py
:
Обработка форм и параметров запроса
Query-параметры:
Работа с JSON и REST API
Получение JSON:
Использование redirect, cookies и сессий
Обработка ошибок и исключений
Интеграция с SQLite и другими БД
Пример запроса:
Работа с файлами и загрузка данных
Организация структуры проекта
Примерная структура:
Подключение статики:
Развёртывание Bottle-приложений
С использованием WSGI-серверов:
Или через paste:
Примеры практического применения
-
Быстрые прототипы и тестовые API
-
Веб-приложения с минимальными зависимостями
-
IoT-устройства и встраиваемые системы
-
Админки и сервисы мониторинга
-
REST API для мобильных приложений
Часто задаваемые вопросы
Что такое Bottle?
Минималистичный веб-фреймворк на Python для создания REST API и небольших приложений.
Можно ли использовать шаблоны?
Да, встроен шаблонизатор SimpleTemplate Engine.
Поддерживает ли Bottle JSON?
Да, можно обрабатывать и возвращать JSON-данные.
Подходит ли Bottle для продакшн?
Да, с использованием внешнего сервера (Gunicorn, uWSGI).
Можно ли подключить базу данных?
Да, Bottle поддерживает любые Python-библиотеки для работы с БД.
Полный справочник по ключевым функциям фреймворка Bottle
для Python
Установка
Простой пример
Основные функции и маршруты
Декоратор / Функция | Назначение |
---|---|
@route('/path') |
Маршрутизация GET-запросов. |
@get('/path') , @post('/path') , @put() , @delete() |
Обработка HTTP-методов. |
run() |
Запуск встроенного сервера. |
redirect(url) |
Перенаправление. |
abort(code, msg) |
Прерывание с ошибкой. |
static_file(filename, root) |
Отдача статических файлов. |
Параметры маршрутов
Типизация параметров:
Доступ к данным запроса
Источник | Получение |
---|---|
GET | request.query.get('param') |
POST (form) | request.forms.get('key') |
JSON | request.json.get('key') |
Заголовки | request.headers.get('Header-Name') |
Ответы
Установка кук:
Получение кук:
Работа с шаблонами
Bottle использует встроенный шаблонизатор SimpleTemplate Engine (stpl)
:
views/hello.tpl
В коде:
Работа с файлами
Запуск на продакшн-сервере
С gunicorn
:
Или с WSGI-сервером, например waitress
: