Метод path_shift
Метод path_shift применяется к объекту запроса
request и удаляет первый сегмент из текущего
пути. Метод возвращает удалённый сегмент в виде строки.
Если путь пуст, возвращается None. Метод удобно
использовать для последовательного разбора URL или для
реализации собственной маршрутизации внутри обработчика.
Синтаксис
request.path_shift()
Метод не принимает параметров и возвращает строку
или None.
Пример
Давайте разберём путь /user/article/abcde
по сегментам с помощью метода path_shift:
from bottle import Bottle, request
app = Bottle()
@app.route('/user/article/abcde')
def index():
first = request.path_shift()
second = request.path_shift()
return first + ' ' + second
Результат выполнения кода:
"user article"
Пример
Давайте проверим, что вернёт метод, когда путь полностью разобран:
from bottle import Bottle, request
app = Bottle()
@app.route('/hello')
def index():
first = request.path_shift()
second = request.path_shift()
return str(second)
Результат выполнения кода:
"None"
Пример
Давайте используем метод path_shift для
собственного разбора вложенного маршрута:
from bottle import Bottle, request
app = Bottle()
@app.route('/<path:path>')
def index(path):
section = request.path_shift()
if section == 'user':
name = request.path_shift()
return 'user: ' + name
return 'section: ' + section
Результат выполнения кода для адреса
/user/abcde:
user: abcde