Spec-Zone.ru › Bottle 0.12

Справочник 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 – Параметры, передаваемые адаптеру сервера.
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.

cookie_encode(data, key) [source]

Кодирует и подписывает сериализуемый объект pickle. Возвращает строку (байтовую).

cookie_decode(data, key) [source]

Проверяет и декодирует закодированную строку. Возвращает объект или None.

cookie_is_encoded(data) [source]

Возвращает 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=, cachemode='all') [source]

Этот класс управляет списком путей поиска и помогает находить и открывать связанные с приложением ресурсы (файлы).

Параметры:
  • 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__)
lookup(name) [source]

Ищет ресурс и возвращает абсолютный путь к файлу или None.

Список path ищется в порядке. Возвращается первая находка. Символьные ссылки следуют. Результат кэшируется для ускорения будущих поисков.

open(name, mode='r', *args, **kwargs) [source]

Находит ресурс и возвращает объект файла или вызывает исключение IOError.

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().

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.

END_OF_DOCUMENT_MARKER
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]

Возвращает значение заголовка запроса или заданное значение по умолчанию.

cookies [source]

Куки, распарсенные в FormsDict. Подписанные куки НЕ декодируются. Используйте get_cookie(), если ожидаются подписанные куки.

get_cookie(key, default=None, secret=None) [source]

Возвращает содержимое куки. Для чтения 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.input environ. Последующие обращения просто выполняют 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

Необработанная часть query URL (всё между ? и # ) в виде строки.

script_name

Начальная часть пути URL path, удалённая на более высоком уровне (сервер или middleware для маршрутизации) перед вызовом приложения. Этот путь скрипта возвращается с ведущими и хвостовыми слэшами.

END_OF_DOCUMENT_MARKER
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-адрес клиента в виде строки. Обратите внимание, что эту информацию могут подделывать злонамеренные клиенты.

copy() [source]

Возвращает новый Request с поверхностной копией environ.

Модульный 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).

set_cookie(name, value, secret=None, **options) [source]

Создаёт новый куки или перезаписывает существующий. Если параметр 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 Кб в большинстве браузеров.

Предупреждение: Подписанные куки не зашифрованы (клиент всё ещё может видеть содержимое) и не защищены от копирования (клиент может восстановить старую куки). Основная цель – обеспечить безопасность сериализации и десериализации, а не хранение секретной информации на стороне клиента.

delete_cookie(key, **kwargs) [source]

Удаляет куки. Убедитесь, что вы используете те же 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API