Атрибут script_name
Атрибут script_name класса Request возвращает строку,
содержащую начальный сегмент пути URL, который был «съеден»
сервером или WSGI-окружением при монтировании приложения.
Иными словами, это префикс адреса, под которым приложение
запущено. Если приложение работает в корне домена,
значение атрибута будет пустой строкой ''.
Значение берётся из ключа SCRIPT_NAME
словаря environ и часто используется совместно
с атрибутами path и fullpath
для построения корректных ссылок.
Синтаксис
request.script_name
Пример
Давайте выведем значение атрибута script_name
в обработчике корневого маршрута:
from bottle import Bottle, request
app = Bottle()
@app.route('/')
def index():
return request.script_name
При запуске приложения в корне домена результат выполнения кода будет таким:
""
Пример
Если приложение смонтировано по адресу /user,
значение атрибута будет равно этому префиксу.
Давайте соберём полный путь, объединив
script_name и path:
from bottle import Bottle, request
app = Bottle()
@app.route('/')
def index():
res = request.script_name + request.path
return res
Для запроса к адресу /user/article результат
выполнения кода будет таким:
"/user/article"
Пример
Давайте используем атрибут script_name для
построения ссылки в шаблоне:
from bottle import Bottle, request, template
app = Bottle()
@app.route('/')
def index():
return template('index', prefix=request.script_name)
Содержимое шаблона index.tpl:
<a href="{{ prefix }}/article">article</a>
Для приложения, смонтированного по адресу /user,
результат выполнения кода будет таким:
<a href="/user/article">article</a>