Bottle Python — это минималистичный микрофреймворк для веб-разработки на языке Python. В этой статье мы сосредоточимся на ключевом аспекте разработки веб-приложений — маршрутизации и обработке запросов в Bottle Python.
Маршруты в Bottle Python
В Bottle Python маршруты представляют собой URL-адреса, на которые приложение будет реагировать. Определение маршрутов осуществляется с использованием декораторов. Давайте рассмотрим пример простого маршрута:
from bottle import route, run
@route('/hello')
def hello():
return "Привет, мир!"
if __name__ == '__main__':
run(host='localhost', port=8080)
В этом примере создается маршрут /hello
, и когда пользователь переходит по адресу http://localhost:8080/hello
, он видит сообщение «Привет, мир!».
Передача параметров через маршруты
Маршруты в Bottle Python могут содержать параметры. Параметры включаются в URL и позволяют передавать данные в ваше приложение. Рассмотрим пример:
from bottle import route, run
@route('/greet/<name>')
def greet(name):
return f"Привет, {name}!"
if __name__ == '__main__':
run(host='localhost', port=8080)
В данном примере создается маршрут /greet/<name>
, где name
является параметром, передаваемым через URL. Этот параметр используется для персонализации приветствия.
Обработка различных типов запросов
Bottle Python поддерживает обработку различных типов HTTP-запросов: GET, POST, PUT, DELETE и многое другое. Используя соответствующие декораторы (@get
, @post
, @put
, @delete
), можно указать, какой тип запроса должен обрабатывать определенную функцию. Пример:
from bottle import get, post, request, run
@get('/hello')
def hello():
return "Это GET запрос."
@post('/hello')
def hello_post():
return "Это POST запрос."
if __name__ == '__main__':
run(host='localhost', port=8080)
В этом примере функция hello()
обрабатывает GET-запросы, а функция hello_post()
обрабатывает POST-запросы по одному и тому же URL.
Обработка параметров запроса
Часто бывает необходимо получить параметры из запроса, например, данные из формы. В Bottle Python это можно сделать, используя объект request
. Пример обработки параметров из GET-запроса:
from bottle import get, request, run
@get('/hello')
def hello():
name = request.query.name
return f"Привет, {name}!"
if __name__ == '__main__':
run(host='localhost', port=8080)
В этом примере функция hello()
ожидает GET-параметр name
и использует его для персонализированного приветствия.
Статические файлы и папки
Bottle Python также позволяет обслуживать статические файлы, такие как изображения, CSS-стили и JavaScript. Для этого используется функция static_file()
. Пример:
from bottle import route, static_file, run
@route('/static/<filename:path>')
def server_static(filename):
return static_file(filename, root='/путь/к/директории')
if __name__ == '__main__':
run(host='localhost', port=8080)
В этом примере при обращении к /static/filename
будут возвращаться статические файлы из указанной директории.
Заключение
Маршрутизация и обработка запросов — важная часть разработки веб-приложений. В Bottle Python это реализуется простыми и интуитивно понятными механизмами, позволяя быстро создавать функциональные веб-приложения.