Справочник API
Это API, в основном сгенерированный автоматически. Если вы новичок в bottle, вам может быть полезнее руководство Учебное пособие.
Содержание модуля
Модуль определяет несколько функций, констант и исключение.
-
debug(mode=True)[source] -
Изменить уровень отладки. В настоящее время поддерживается только один уровень отладки.
-
run(app=None, server='wsgiref', host='127.0.0.1', port=8080, interval=1, reloader=False, quiet=False, plugins=None, debug=None, **kargs)[source] -
Запустить экземпляр сервера. Этот метод блокируется до завершения работы сервера.
Параметры: -
app – WSGI приложение или целевая строка, поддерживаемая
load_app(). (по умолчанию:default_app()) -
server – Адаптер сервера для использования. См. ключи
server_namesдля допустимых имен или передайте подклассServerAdapter. (по умолчанию:wsgiref) -
host – Адрес сервера для привязки. Передайте
0.0.0.0для прослушивания на всех интерфейсах, включая внешний. (по умолчанию: 127.0.0.1) - port – Порт сервера для привязки. Значения ниже 1024 требуют привилегий root. (по умолчанию: 8080)
- reloader – Запустить автоперезагрузку сервера? (по умолчанию: False)
- interval – Интервал автоперезагрузки в секундах (по умолчанию: 1)
- quiet – Подавить вывод в stdout и stderr? (по умолчанию: False)
- options – Параметры, передаваемые адаптеру сервера.
-
app – WSGI приложение или целевая строка, поддерживаемая
-
load(target, **namespace)[source] -
Импортировать модуль или извлечь объект из модуля.
-
package.moduleвозвращаетmoduleкак объект модуля. -
pack.mod:nameвозвращает переменную модуляnameизpack.mod. -
pack.mod:func()вызываетpack.mod.func()и возвращает результат.
Последняя форма принимает не только вызовы функций, но и любые типы выражений. Аргументы ключевого слова, передаваемые в эту функцию, доступны в качестве локальных переменных. Пример:
import_string('re:compile(x)', x='[a-z]') -
-
load_app(target)[source] -
Загрузить приложение bottle из модуля и убедиться, что импорт не повлияет на текущее приложение по умолчанию, но вернёт отдельный объект приложения. См.
load()для параметра target.
-
request = -
Потокобезопасный экземпляр
LocalRequest. Если к нему обращаются изнутри обработчика запроса, этот экземпляр всегда ссылается на текущий запрос (даже на многопоточном сервере).
-
response = Content-Type: text/html; charset=UTF-8 -
Потокобезопасный экземпляр
LocalResponse. Он используется для изменения HTTP ответа для текущего запроса.
-
HTTP_CODES = {300: 'Multiple Choices', 301: 'Moved Permanently', 302: 'Found', 303: 'See Other', 304: 'Not Modified', 305: 'Use Proxy', 306: '(Unused)', 307: 'Temporary Redirect', 100: 'Continue', 101: 'Switching Protocols', 400: 'Bad Request', 401: 'Unauthorized', 402: 'Payment Required', 403: 'Forbidden', 404: 'Not Found', 405: 'Method Not Allowed', 406: 'Not Acceptable', 407: 'Proxy Authentication Required', 408: 'Request Timeout', 409: 'Conflict', 410: 'Gone', 411: 'Length Required', 412: 'Precondition Failed', 413: 'Request Entity Too Large', 414: 'Request-URI Too Long', 415: 'Unsupported Media Type', 416: 'Requested Range Not Satisfiable', 417: 'Expectation Failed', 418: "I'm a teapot", 422: 'Unprocessable Entity', 428: 'Precondition Required', 429: 'Too Many Requests', 431: 'Request Header Fields Too Large', 200: 'OK', 201: 'Created', 202: 'Accepted', 203: 'Non-Authoritative Information', 204: 'No Content', 205: 'Reset Content', 206: 'Partial Content', 500: 'Internal Server Error', 501: 'Not Implemented', 502: 'Bad Gateway', 503: 'Service Unavailable', 504: 'Gateway Timeout', 505: 'HTTP Version Not Supported', 511: 'Network Authentication Required'} -
Словарь для сопоставления кодов HTTP-статусов (например, 404) со фразами (например, «Not Found»)
-
app() -
default_app() -
Вернуть текущее Приложение по умолчанию. Фактически, это вызываемые экземпляры
AppStackи реализуют API в стиле стека.
Маршрутизация
Bottle поддерживает стек экземпляров Bottle (см. app() и AppStack) и использует верхнюю часть стека в качестве приложения по умолчанию для некоторых функций и декораторов модуля.
-
route(path, method='GET', callback=None, **options) -
get(...) -
post(...) -
put(...) -
delete(...) -
Декоратор для установки маршрута в текущем приложении по умолчанию. Подробности см. в
Bottle.route().
-
error(...) -
Декоратор для установки обработчика ошибок в текущем приложении по умолчанию. Подробности см. в
Bottle.error().
WSGI и HTTP утилиты
-
parse_date(ims)[source] -
Парсит временные метки rfc1123, rfc850 и asctime и возвращает эпоху UTC.
-
parse_auth(header)[source] -
Парсит строку заголовка HTTP-аутентификации rfc2617 (basic) и возвращает кортеж (user, pass) или None.
-
Кодирует и подписывает сериализуемый объект pickle. Возвращает строку (байтовую).
-
Проверяет и декодирует закодированную строку. Возвращает объект или None.
-
Возвращает True, если аргумент выглядит как закодированный куки.
-
yieldroutes(func)[source] -
Возвращает генератор для маршрутов, соответствующих сигнатуре (имя, аргументы) параметра func. Это может вернуть более одного маршрута, если функция принимает необязательные аргументы ключевых слов. Вывод лучше всего описан на примере:
a() -> '/a' b(x, y) -> '/b/<x>/<y>' c(x, y=5) -> '/c/<x>' and '/c/<x>/<y>' d(x=5, y=6) -> '/d' and '/d/<x>' and '/d/<x>/<y>'
-
path_shift(script_name, path_info, shift=1)[source] -
Смещает фрагменты пути из PATH_INFO в SCRIPT_NAME и наоборот.
Возвращает: Измененные пути.
Параметры: - script_name – Путь SCRIPT_NAME.
- script_name – Путь PATH_INFO.
- shift – Количество фрагментов пути для смещения. Может быть отрицательным для изменения направления смещения. (по умолчанию: 1)
Структуры данных
-
class MultiDict(*a, **k)[source] -
Этот словарь хранит несколько значений для каждого ключа, но ведет себя точно так же, как обычный словарь, возвращая только последнее значение для данного ключа. Доступны специальные методы для доступа к полному списку значений.
-
get(key, default=None, index=-1, type=None)[source] -
Возвращает последнее значение для заданного ключа.
Параметры: - default – Значение по умолчанию, которое будет возвращено, если ключ отсутствует или преобразование типа не удаётся.
- index – Индекс в списке доступных значений.
- type – Если определён, это вызываемый объект используется для приведения значения к определённому типу. Исключение игнорируется, и возвращается значение по умолчанию.
-
append(key, value)[source] -
Добавляет новое значение в список значений для этого ключа.
-
replace(key, value)[source] -
Заменяет список значений одним значением.
-
getall(key)[source] -
Возвращает список значений для ключа (возможно пустой).
-
getone(key, default=None, index=-1, type=None) -
Псевдонимы для WTForms для имитации других API многозначных словарей (Django).
-
getlist(key) -
Возвращает список значений для ключа (возможно пустой).
-
-
class HeaderDict(*a, **ka)[source] -
Регистронезависимая версия
MultiDict, по умолчанию заменяющая старое значение, а не добавляющая его.
-
class FormsDict(*a, **k)[source] -
Этот подкласс
MultiDictиспользуется для хранения данных формы запроса. Помимо обычных методов доступа к элементам (возвращающих данные как есть, в виде обычных строк), этот контейнер также поддерживает доступ к значениям по атрибутам. Атрибуты автоматически декодируются или закодируются в соответствии сinput_encoding(по умолчанию: ‘utf8’). Отсутствующие атрибуты по умолчанию являются пустой строкой.-
input_encoding = 'utf8' -
Кодировка, используемая для значений атрибутов.
-
recode_unicode = True -
Если True (по умолчанию), строки unicode сначала кодируются с помощью
latin1и затем декодируются в соответствии сinput_encoding.
-
decode(encoding=None)[source] -
Возвращает копию со всеми ключами и значениями, декодированными или закодированными в соответствии с
input_encoding. Некоторые библиотеки (например, WTForms) хотят словарь с unicode.
-
getunicode(name, default=None, encoding=None)[source] -
Возвращает значение как строку unicode или значение по умолчанию.
-
-
class WSGIHeaderDict(environ)[source] -
Этот похожий на словарь класс оборачивает словарь WSGI environ и предоставляет удобный доступ к полям HTTP_*. Ключи и значения являются обычными строками (байтами в 2.x или unicode в 3.x), а ключи регистронезависимы. Если WSGI-среда содержит нестандартные строковые значения, они декодируются или кодируются с использованием без потерь набора символов ‘latin1’.
API останется стабильным даже при изменениях в соответствующих PEP. В настоящее время поддерживаются PEP 333, 444 и 3333. (PEP 444 — единственный, использующий нестандартные строки.)
-
cgikeys = ('CONTENT_TYPE', 'CONTENT_LENGTH') -
Список ключей, у которых нет префикса
HTTP_.
-
raw(key, default=None)[source] -
Возвращает значение заголовка как есть (может быть байтами или unicode).
-
-
class AppStack[source] -
Список, похожий на стек. Вызов его возвращает начало стека.
-
pop() -
Возвращает текущее приложение по умолчанию и удаляет его из стека.
-
push(value=None)[source] -
Добавляет новый экземпляр
Bottleв стек
-
-
class ResourceManager(base='./', opener=[source], cachemode='all') -
Этот класс управляет списком путей поиска и помогает находить и открывать связанные с приложением ресурсы (файлы).
Параметры: -
base – значение по умолчанию для вызовов
add_path(). - opener – вызываемый объект, используемый для открытия ресурсов.
- cachemode – управляет кешированием поисков. Одно из значений: ‘all’, ‘found’ или ‘none’.
-
path = None -
Список путей поиска. Подробнее см.
add_path().
-
cache = None -
Кэш разрешённых путей.
res.cache.clear()очищает кэш.
-
add_path(path, base=None, index=None, create=False)[source] -
Добавляет новый путь в список путей поиска. Возвращает False, если путь не существует.
Параметры: -
path – Новый путь поиска. Относительные пути преобразуются в абсолютные и нормализованные. Если путь похож на файл (не заканчивается на
/), имя файла удаляется. -
base – Путь, используемый для абсолютизации относительных путей поиска. По умолчанию
base, которое по умолчанию равноos.getcwd(). - index – Позиция в списке путей поиска. По умолчанию последний индекс (добавляет в конец списка).
Параметр
baseупрощает ссылки на файлы, установленные вместе с модулем или пакетом Python:res.add_path('./resources/', __file__) -
path – Новый путь поиска. Относительные пути преобразуются в абсолютные и нормализованные. Если путь похож на файл (не заканчивается на
-
lookup(name)[source] -
Ищет ресурс и возвращает абсолютный путь к файлу или
None.Список
pathищется в порядке. Возвращается первая находка. Символьные ссылки следуют. Результат кэшируется для ускорения будущих поисков.
-
open(name, mode='r', *args, **kwargs)[source] -
Находит ресурс и возвращает объект файла или вызывает исключение IOError.
-
base – значение по умолчанию для вызовов
-
class FileUpload(fileobj, name, filename, headers=None)[source] -
-
file = None -
Открытый объект файла (буфер BytesIO или временный файл)
-
name = None -
Имя поля формы загрузки
-
raw_filename = None -
Исходное имя файла, отправленное клиентом (может содержать небезопасные символы)
-
headers = None -
HeaderDictс дополнительными заголовками (например, content-type)
-
content_type -
Текущее значение заголовка «Content-Type».
-
content_length -
Текущее значение заголовка «Content-Length».
-
get_header(name, default=None)[source] -
Возвращает значение заголовка внутри части multipart.
-
filename[source] -
Имя файла на файловой системе клиента, но нормализованное для обеспечения совместимости с файловой системой. Пустое имя файла возвращается как «empty».
В конечном имени файла разрешены только латинские буквы, цифры, дефисы, подчеркивания и точки. Глядящие знаки удаляются, если возможно. Пробелы заменяются одним дефисом. Начальные или конечные точки или дефисы удаляются. Длина имени файла ограничена 255 символами.
-
save(destination, overwrite=False, chunk_size=65536)[source] -
Сохраняет файл на диск или копирует его содержимое в открытый объект файла. Если destination является каталогом,
filenameдобавляется к пути. Существующие файлы по умолчанию не перезаписываются (IOError).Параметры: - destination – Путь к файлу, каталог или объект файла.
- overwrite – Если True, перезаписать существующие файлы. (по умолчанию: False)
- chunk_size – Байты, которые считываются за раз. (по умолчанию: 64 Кб)
-
Исключения
-
exception BottleException[source] -
Базовый класс исключений, используемых в bottle.
Класс Bottle
-
class Bottle(catchall=True, autojson=True)[source] -
Каждый объект Bottle представляет собой отдельное веб-приложение и состоит из маршрутов, обратных вызовов, плагинов, ресурсов и конфигурации. Экземпляры являются вызываемыми WSGI-приложениями.
Параметры: catchall – Если True (по умолчанию), обрабатывать все исключения. Выключить, чтобы дебаг-среда обработки исключений работала. -
config = None -
A
ConfigDictдля конфигурации приложения.
-
resources = None -
A
ResourceManagerдля файлов приложения
-
catchall -
Если True, большинство исключений перехватываются и возвращаются как
HTTPError
-
add_hook(name, func)[source] -
Прикрепить обратный вызов к обработчику. В настоящее время реализованы три обработчика:
- before_request
- Выполняется один раз перед каждым запросом. Контекст запроса доступен, но маршрутизация еще не произошла.
- after_request
- Выполняется один раз после каждого запроса независимо от его результата.
- app_reset
- Вызывается всякий раз, когда вызывается
Bottle.reset().
-
remove_hook(name, func)[source] -
Удалить обратный вызов из обработчика.
-
trigger_hook(_Bottle__name, *args, **kwargs)[source] -
Запустить обработчик и вернуть список результатов.
-
hook(name)[source] -
Возвращает декоратор, который прикрепляет обратный вызов к обработчику. Подробнее см.
add_hook().
-
mount(prefix, app, **options)[source] -
Подключить приложение (
Bottleили обычное WSGI) к определённому префиксу URL. Пример:root_app.mount('/admin/', admin_app)Параметры: -
prefix – префикс пути или
mount-point. Если он заканчивается слешем, этот слеш обязателен. -
app – экземпляр
Bottleили WSGI-приложение.
Все остальные параметры передаются в вызов
route(). -
prefix – префикс пути или
-
merge(routes)[source] -
Объединить маршруты другого приложения
Bottleили списка объектовRouteв это приложение. Маршруты сохраняют своего «владельца», что означает, что атрибутRoute.appне меняется.
-
install(plugin)[source] -
Добавить плагин в список плагинов и подготовить его к применению ко всем маршрутам этого приложения. Плагин может быть простым декоратором или объектом, который реализует API
Plugin.
-
uninstall(plugin)[source] -
Удалить плагины. Передайте экземпляр, чтобы удалить конкретный плагин, тип объекта, чтобы удалить все плагины, которые соответствуют этому типу, строку, чтобы удалить все плагины с соответствующим атрибутом
name, илиTrue, чтобы удалить все плагины. Вернуть список удаленных плагинов.
-
reset(route=None)[source] -
Сбросить все маршруты (принудительно повторно применить плагины) и очистить все кэши. Если указан ID или объект маршрута, затронут только этот конкретный маршрут.
-
close()[source] -
Закрыть приложение и все установленные плагины.
-
run(**kwargs)[source] -
Вызывает
run()с теми же параметрами.
-
match(environ)[source] -
Поиск совпадающего маршрута и возвращение кортежа (
Route, urlargs). Второе значение — словарь с параметрами, извлечёнными из URL. При отсутствии совпадения возбуждаетHTTPError(404/405).
-
get_url(routename, **kargs)[source] -
Возвращает строку, соответствующую именованному маршруту.
-
add_route(route)[source] -
Добавить объект маршрута, но не изменить атрибут
Route.app.
-
route(path=None, method='GET', callback=None, name=None, apply=None, skip=None, **config)[source] -
Декоратор для привязки функции к URL-адресу запроса. Пример:
@app.route('/hello/:name') def hello(name): return 'Hello %s' % nameЧасть
:nameявляется подстановкой. Подробнее см.Router.Параметры: - path – Путь запроса или список путей для прослушивания. Если путь не указан, он автоматически генерируется из сигнатуры функции.
-
method – HTTP-метод (
GET,POST,PUT, ...) или список методов для прослушивания. (по умолчанию:GET) -
callback – Необязательный сокращённый синтаксис, чтобы избежать использования декоратора.
route(..., callback=func)равноroute(...)(func) - name – Имя для этого маршрута. (по умолчанию: None)
- apply – Декоратор или плагин или список плагинов. Они применяются к обратному вызову маршрута дополнительно к установленным плагинам.
-
skip – Список плагинов, классов плагинов или имён. Соответствующие плагины не устанавливаются для этого маршрута.
Trueигнорирует все.
Все дополнительные ключевые аргументы хранятся как конфигурация, специфичная для маршрута, и передаются плагинам (см.
Plugin.apply()).
-
get(path=None, method='GET', **options)[source] -
Равно
route().
-
post(path=None, method='POST', **options)[source] -
Равно
route()с параметром методаPOST.
-
put(path=None, method='PUT', **options)[source] -
Равно
route()с параметром методаPUT.
-
-
delete(path=None, method='DELETE', **options)[source] -
Равно
route()с параметром методаDELETE.
-
error(code=500)[source] -
Декоратор: Регистрирует обработчик вывода для кода HTTP-ошибки
-
wsgi(environ, start_response)[source] -
Интерфейс Bottle WSGI.
-
-
class Route(app, rule, method, callback, name=None, plugins=None, skiplist=None, **config)[source] -
Этот класс оборачивает обработчик маршрута вместе с метаданными и конфигурацией, специфичными для маршрута, и применяет плагины по требованию. Он также отвечает за преобразование правила пути URL в регулярное выражение, используемое маршрутизатором.
-
app = None -
Приложения, к которому установлен этот маршрут.
-
rule = None -
Строка правила пути (например,
/wiki/:page).
-
method = None -
Метод HTTP в виде строки (например,
GET).
-
callback = None -
Исходный обработчик без примененных плагинов. Полезен для интроспекции.
-
name = None -
Имя маршрута (если указано) или
None.
-
plugins = None -
Список плагинов, специфичных для маршрута (см.
Bottle.route()).
-
skiplist = None -
Список плагинов, которые не должны применяться к этому маршруту (см.
Bottle.route()).
-
config = None -
Дополнительные ключевые аргументы, переданные декоратору
Bottle.route(), хранятся в этом словаре. Используются для конфигурации плагинов и метаданных, специфичных для маршрута.
-
call[source] -
Обработчик маршрута со всеми применёнными плагинами. Эта свойство создаётся по запросу и кэшируется для ускорения последующих запросов.
-
reset()[source] -
Забыть все кэшированные значения. При следующем обращении к
callвсе плагины применяются заново.
-
prepare()[source] -
Выполнить все необходимые действия сразу (полезно для отладки).
-
all_plugins()[source] -
Возвращает все плагины, влияющие на данный маршрут.
-
get_undecorated_callback()[source] -
Возвращает обработчик. Если обработчик является декорированной функцией, пытается восстановить исходную функцию.
-
get_callback_args()[source] -
Возвращает список имён аргументов, которые (вероятно) принимает обработчик в качестве ключевых аргументов. Если обработчик является декорированной функцией, пытается восстановить исходную функцию перед инспекцией.
-
get_config(key, default=None)[source] -
Ищет поле конфигурации и возвращает его значение, сначала проверяя route.config, а затем route.app.config.
-
Объект запроса
Класс Request оборачивает среду WSGI и предоставляет полезные методы для парсинга и доступа к данным формы, cookie, загрузке файлов и другим метаданным. Большинство атрибутов являются только для чтения.
-
Request -
Псевдоним для
BaseRequest
-
class BaseRequest(environ=None)[source] -
Обёртка для словарей среды WSGI, которая добавляет множество удобных методов и свойств доступа. Большинство из них — только для чтения.
Добавление новых атрибутов к запросу фактически добавляет их в словарь environ (как ‘bottle.request.ext.<name>’). Это рекомендуемый способ хранения и доступа к данным, специфичным для запроса.
-
MEMFILE_MAX = 102400 -
Максимальный размер буфера памяти для
bodyв байтах.
-
environ -
Оборачиваемый словарь WSGI environ. Это единственный реальный атрибут. Все остальные атрибуты на самом деле являются только для чтения свойствами.
-
app[source] -
Приложение Bottle, обрабатывающее этот запрос.
-
route[source] -
Объект bottle
Route, который соответствует этому запросу.
-
url_args[source] -
Аргументы, извлечённые из URL.
-
path -
Значение
PATH_INFOровно с одним префиксным слэшем (для исправления проблемных клиентов и избежания крайнего случая «пустого пути»).
-
method -
Значение
REQUEST_METHODв виде строки в верхнем регистре.
-
headers[source] -
WSGIHeaderDict, обеспечивающий доступ к HTTP-заголовкам запроса без учёта регистра.
-
get_header(name, default=None)[source] -
Возвращает значение заголовка запроса или заданное значение по умолчанию.
-
Куки, распарсенные в
FormsDict. Подписанные куки НЕ декодируются. Используйтеget_cookie(), если ожидаются подписанные куки.
-
Возвращает содержимое куки. Для чтения
Signed Cookie,secretдолжно совпадать с тем, которое использовалось при создании куки (см.BaseResponse.set_cookie()). При возникновении проблем (отсутствующая кука или неправильная подпись), возвращается значение по умолчанию.
-
query[source] -
query_string, распарсенная вFormsDict. Эти значения иногда называют «аргументами URL» или «параметрами GET», но не следует путать с «подстановками URL», предоставляемымиRouter.
-
forms[source] -
Значения форм, распарсенные из тела POST или PUT-запроса, закодированного в
url-encodedилиmultipart/form-data. Результат возвращается какFormsDict. Все ключи и значения являются строками. Файловые загрузки хранятся отдельно вfiles.
-
params[source] -
FormsDictс объединёнными значениямиqueryиforms. Файловые загрузки хранятся вfiles.
-
files[source] -
Файловые загрузки, распарсенные из тела POST или PUT-запроса, закодированного в
multipart/form-data. Значения являются экземплярамиFileUpload.
-
json[source] -
Если заголовок
Content-Typeимеет значениеapplication/json, это свойство содержит распарсенное содержимое тела запроса. Обрабатываются только запросы размером меньшеMEMFILE_MAX, чтобы избежать исчерпания памяти.
-
body -
Тело HTTP-запроса как объект файла со сдвигом. В зависимости от
MEMFILE_MAX, это либо временный файл, либо экземплярio.BytesIO. Доступ к этому свойству в первый раз считывает и заменяет переменнуюwsgi.inputenviron. Последующие обращения просто выполняютseek(0)на объекте файла.
-
chunked -
True, если кодировка передачи фрагментами была применена.
-
GET -
Псевдоним для
query.
-
POST[source] -
Значения
formsиfiles, объединённые в одинFormsDict. Значения — это либо строки (значения формы), либо экземплярыcgi.FieldStorage(файловые загрузки).
-
url -
Полный URI запроса, включая имя хоста и схему. Если ваше приложение работает за обратным прокси-сервером или балансировщиком нагрузки и вы получаете путаницу, убедитесь, что заголовок
X-Forwarded-Hostустановлен правильно.
-
urlparts[source] -
Строка
urlкак кортежurlparse.SplitResult. Кортеж содержит (схема, хост, путь, query_string и фрагмент), но фрагмент всегда пуст, потому что он не виден серверу.
-
fullpath -
Путь запроса, включая
script_name(если он присутствует).
-
query_string -
Необработанная часть
queryURL (всё между?и#) в виде строки.
-
script_name -
Начальная часть пути URL
path, удалённая на более высоком уровне (сервер или middleware для маршрутизации) перед вызовом приложения. Этот путь скрипта возвращается с ведущими и хвостовыми слэшами.
-
-
path_shift(shift=1)[source] -
-
Shift path segments from path to script_name and - в обратном порядке.
Параметры: shift – Количество сегментов пути для сдвига. Может быть отрицательным для изменения направления сдвига. (по умолчанию: 1) -
-
content_length -
Длина тела запроса в виде целого числа. Клиент отвечает за установку этого заголовка. В противном случае реальная длина тела неизвестна, и возвращается -1. В этом случае
bodyбудет пустой.
-
content_type -
Заголовок Content-Type в виде строчной строки (по умолчанию: пустая).
-
is_xhr -
True, если запрос был вызван XMLHttpRequest. Это работает только с библиотеками JavaScript, которые поддерживают заголовок
X-Requested-With(большинство популярных библиотек поддерживают).
-
is_ajax -
Псевдоним для
is_xhr. «Ajax» — неверное название.
-
auth -
Данные аутентификации HTTP в виде кортежа (пользователь, пароль). Эта реализация в настоящее время поддерживает только базовая (не digest) аутентификация. Если аутентификация произошла на более высоком уровне (например, в переднем веб-сервере или в middleware), поле пароля равно None, но поле пользователя извлекается из переменной окружения
REMOTE_USER. При любых ошибках возвращается None.
-
remote_route -
Список всех IP-адресов, участвовавших в этом запросе, начиная с IP-адреса клиента и далее с нулевыми или более прокси-серверами. Это работает только в том случае, если все прокси-серверы поддерживают заголовок
`X-Forwarded-For. Обратите внимание, что эту информацию могут подделывать злонамеренные клиенты.
-
remote_addr -
IP-адрес клиента в виде строки. Обратите внимание, что эту информацию могут подделывать злонамеренные клиенты.
-
Модульный bottle.request — это прокси-объект (реализованный в LocalRequest) и всегда ссылается на current запрос, или, другими словами, запрос, который в данный момент обрабатывается обработчиком запросов в текущем потоке. Это thread locality гарантирует, что вы можете безопасно использовать глобальный экземпляр в многопоточной среде.
-
class LocalRequest(environ=None)[source] -
Локальный подкласс
BaseRequestс разными наборами атрибутов для каждого потока. Обычно существует только один глобальный экземпляр этого класса (request). Если к нему обращаются во время цикла запроса/ответа, этот экземпляр всегда относится к текущему запросу (даже на многопоточном сервере).-
bind(environ=None) -
Оборачивает словарь WSGI environ.
-
environ -
Локальное свойство
-
-
request = -
Потокобезопасный экземпляр
LocalRequest. Если к нему обращаются внутри обратного вызова запроса, этот экземпляр всегда относится к текущему запросу (даже на многопоточном сервере).
Объект ответа
Класс Response хранит код HTTP-статуса, а также заголовки и куки, которые должны быть отправлены клиенту. Аналогично bottle.request, существует локальный экземпляр bottle.response, который может быть использован для настройки ответа current. Кроме того, вы можете создать экземпляр Response и вернуть его из обработчика запросов. В этом случае пользовательский экземпляр переопределяет заголовки и куки, определённые в глобальном экземпляре.
-
Response -
Псевдоним для
BaseResponse
-
class BaseResponse(body='', status=None, headers=None, **more_headers)[source] -
Класс для хранения тела ответа, а также заголовков и куки.
Этот класс поддерживает доступ к элементам заголовков по ключу без учёта регистра (как в словаре), но НЕ является словарем. Важно отметить, что итерация по ответу возвращает части тела, а не заголовки.
Параметры: - body – Тело ответа в одном из поддерживаемых типов.
- status – Код состояния HTTP (например, 200) или строка состояния, включающая фразу причины (например, ‘200 OK’).
- headers – Словарь или список пар «имя-значение».
Дополнительные ключевые аргументы добавляются в список заголовков. Подчеркивания в имени заголовка заменяются на дефисы.
-
copy(cls=None)[source] -
Возвращает копию объекта.
-
status_line -
Строка состояния HTTP в виде строки (например,
404 Not Found).
-
status_code -
Код состояния HTTP в виде целого числа (например, 404).
-
status -
Изменяемый атрибут для изменения состояния HTTP ответа. Принимает либо числовой код (100-999), либо строку с пользовательской фразой причины (например, “404 Brain not found”). Оба значения
status_lineиstatus_codeобновляются соответственно. Возвращаемое значение всегда является строкой состояния.
-
headers -
Экземпляр
HeaderDict, представление заголовков ответа как словаря, нечувствительного к регистру.
-
get_header(name, default=None)[source] -
Возвращает значение ранее определённого заголовка. Если заголовок с таким именем не найден, возвращает значение по умолчанию.
-
set_header(name, value)[source] -
Создаёт новый заголовок ответа, заменяя любые ранее определённые заголовки с таким же именем.
-
add_header(name, value)[source] -
Добавляет дополнительный заголовок ответа, не удаляя дубликаты.
-
iter_headers()[source] -
Возвращает кортежи (заголовок, значение), пропускает заголовки, которые не разрешены текущим кодом состояния ответа.
-
headerlist -
Список кортежей (заголовок, значение) для соответствия спецификации WSGI.
-
content_type -
Текущее значение заголовка «Content-Type».
-
content_length -
Текущее значение заголовка «Content-Length».
-
expires -
Текущее значение заголовка «Expires».
-
charset -
Возвращает кодировку символов, указанную в заголовке content-type (по умолчанию: utf8).
-
Создаёт новый куки или перезаписывает существующий. Если параметр
secretзадан, создаётSigned Cookie(описано ниже).Параметры: - name – имя куки.
- value – значение куки.
- secret – ключ подписи, необходимый для подписанных куки.
Кроме того, этот метод принимает все атрибуты RFC 2109, которые поддерживаются
cookie.Morsel, включая:Параметры: - max_age – максимальное время жизни в секундах. (по умолчанию: None)
- expires – объект datetime или метка времени UNIX. (по умолчанию: None)
- domain – домен, которому разрешено читать куки. (по умолчанию: текущий домен)
- path – ограничивает куки заданным путём (по умолчанию: текущий путь)
- secure – ограничивает куки HTTPS-соединениями (по умолчанию: выключено).
- httponly – предотвращает чтение куки клиентским JavaScript (по умолчанию: выключено, требуется Python 2.6 или более поздняя версия).
Если ни
expiresниmax_ageне заданы (по умолчанию), куки истекают в конце сессии браузера (как только окно браузера закрывается).Подписанные куки могут хранить любой сериализуемый объект и криптографически подписываются для предотвращения подделки. Имейте в виду, что куки ограничены 4 Кб в большинстве браузеров.
Предупреждение: Подписанные куки не зашифрованы (клиент всё ещё может видеть содержимое) и не защищены от копирования (клиент может восстановить старую куки). Основная цель – обеспечить безопасность сериализации и десериализации, а не хранение секретной информации на стороне клиента.
-
Удаляет куки. Убедитесь, что вы используете те же
domainиpathнастройки, что и при создании куки.
-
class LocalResponse(body='', status=None, headers=None, **more_headers)[source] -
Почтовый класс
BaseResponseс разными атрибутами для каждого потока. Обычно существует только один глобальный экземпляр этого класса (response). Его атрибуты используются для построения HTTP ответа в конце цикла запроса/ответа.-
body -
Потоковая локальная переменная.
-
Следующие два класса могут быть подняты как исключение. Самая заметная разница состоит в том, что bottle вызывает обработчики ошибок для HTTPError, но не для HTTPResponse или других типов ответов.
-
exception HTTPResponse(body='', status=None, headers=None, **more_headers)[source]
-
exception HTTPError(status=None, body=None, exception=None, traceback=None, **options)[source]
Шаблоны
Все движки шаблонов, поддерживаемые bottle, реализуют API BaseTemplate. Таким образом, можно переключаться и смешивать движки шаблонов, не изменяя код приложения.
-
class BaseTemplate(source=None, name=None, lookup=[], encoding='utf8', **settings)[source] -
Базовый класс и минимальный API для адаптеров шаблонов
-
__init__(source=None, name=None, lookup=[], encoding='utf8', **settings)[source] -
Создает новый шаблон. Если параметр source (строка или буфер) отсутствует, используется имя аргумента для определения имени файла шаблона. Подклассы могут предполагать, что self.source и/или self.filename установлены. Оба являются строками. Параметры lookup, encoding и settings хранятся как переменные экземпляра. Параметр lookup хранит список путей к каталогам. Параметр encoding должен использоваться для декодирования байтовых строк или файлов. Параметр settings содержит словарь параметров, специфичных для движка.
-
classmethod search(name, lookup=[])[source] -
Ищет имя во всех каталогах, указанных в lookup. Сначала без, затем с общими расширениями. Возвращает первый найденный результат.
-
classmethod global_config(key, *args)[source] -
Читает или устанавливает глобальные настройки, хранящиеся в class.settings.
-
prepare(**options)[source] -
Выполняет подготовку (парсинг, кеширование и т. д.). Должно быть возможно повторное вызов этого метода для обновления шаблона или настроек.
-
render(*args, **kwargs)[source] -
Отображает шаблон с указанными локальными переменными и возвращает строку в байтах или Unicode. Если это строка в байтах, кодировка должна соответствовать self.encoding. Этот метод должен быть потокобезопасным! Локальные переменные могут быть предоставлены в словарях (args) или непосредственно, как ключевые слова (kwargs).
-
-
view(tpl_name, **defaults)[source] -
Декоратор: отображает шаблон для обработчика. Обработчик может контролировать его поведение следующим образом:
- возвращает словарь переменных шаблона для заполнения шаблона
- возвращает что-то другое, чем словарь, и декоратор view не будет обрабатывать шаблон, а вернёт результат обработчика как есть. Это включает возврат HTTPResponse(dict) для получения, например, JSON с autojson или другими castfilters.
-
template(*args, **kwargs)[source] -
Получает отформатированный шаблон в виде итератора строк. Вы можете использовать имя, имя файла или строку шаблона в качестве первого параметра. Аргументы рендеринга шаблона могут передаваться в виде словарей или непосредственно (как ключевые аргументы).
Вы можете написать свой собственный адаптер для вашего любимого движка шаблонов или использовать один из предопределённых адаптеров. В настоящее время поддерживаются четыре движка шаблонов:
| Класс | URL | Декоратор | Функция рендеринга |
|---|---|---|---|
SimpleTemplate | Движок SimpleTemplate | view() | template() |
MakoTemplate | http://www.makotemplates.org | mako_view() | mako_template() |
CheetahTemplate | http://www.cheetahtemplate.org/ | cheetah_view() | cheetah_template() |
Jinja2Template | http://jinja.pocoo.org/ | jinja2_view() | jinja2_template() |
Чтобы использовать MakoTemplate в качестве вашего движка шаблонов по умолчанию, просто импортируйте его специализированный декоратор и функцию рендеринга:
from bottle import mako_view as view, mako_template as template
© 2009–2017 Marcel Hellkamp
Licensed under the MIT License.
https://bottlepy.org/docs/0.12/api.html