Справочник 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", 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, если аргумент похож на закодированный cookie.
-
yieldroutes(func)[source] -
Возвращает генератор для маршрутов, соответствующих сигнатуре (name, args) параметра 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.
-
-
class WSGIHeaderDict(environ)[source] -
Этот словарь-подобный класс оборачивает WSGI-словарь environ и предоставляет удобный доступ к полям HTTP_*. Ключи и значения являются строками-значениями (2.x байты или 3.x unicode), а ключи нечувствительны к регистру. Если 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 – значение по умолчанию для вызовов
Исключения
-
exception BottleException[source] -
Базовый класс исключений, используемых в bottle.
Класс Bottle
-
class Bottle(catchall=True, autojson=True)[source] -
Каждый объект Bottle представляет собой отдельное веб-приложение, состоящее из маршрутов, обратных вызовов, плагинов, ресурсов и настроек. Экземпляры являются вызываемыми WSGI-приложениями.
Параметры: catchall – Если True (по умолчанию), обрабатывать все исключения. Выключить, чтобы позволить обработчику отладки Middleware обрабатывать исключения. -
catchall = None -
Если True, большинство исключений перехватываются и возвращаются как
HTTPError
-
resources = None -
A
ResourceManagerдля файлов приложения
-
config = None -
A
ConfigDictдля конфигурации приложения.
-
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, чтобы удалить все плагины. Возвращает список удалённых плагинов.
-
run(**kwargs)[source] -
Вызывает
run()с теми же параметрами.
-
reset(route=None)[source] -
Сбрасывает все маршруты (принудительно заставляет плагины повторно применяться) и очищает все кэши. Если указан идентификатор или объект маршрута, затронут только этот конкретный маршрут.
-
close()[source] -
Закрывает приложение и все установленные плагины.
-
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-ошибки
-
hook(name)[source] -
Возвращает декоратор, который прикрепляет обратный вызов к хуку. В настоящее время реализованы три хука:
- before_request: Выполняется один раз перед каждым запросом
- after_request: Выполняется один раз после каждого запроса
- app_reset: Вызывается всякий раз, когда вызывается
reset().
-
-
handle(path, method='GET')[source] -
(устарело) Выполняет первую подходящую функцию обратного вызова маршрута и возвращает результат.
HTTPResponseисключения перехватываются и возвращаются. ЕслиBottle.catchallравно true, другие исключения также перехватываются и возвращаются как экземплярыHTTPError(500).
-
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(), хранятся в этом словаре. Используется для конфигурации плагинов, специфичных для маршрута, и метаданных.
-
reset()[source] -
Забыть любые кэшированные значения. В следующий раз при обращении к
callвсе плагины будут повторно применены.
-
prepare()[source] -
Выполнить все требуемые действия немедленно (полезно для отладки).
-
all_plugins()[source] -
Возвращает все плагины, влияющие на этот маршрут.
-
Объект запроса
Класс Request оборачивает среду WSGI и предоставляет полезные методы для разбора и доступа к данным формы, cookies, файловым загрузкам и другим метаданным. Большинство атрибутов являются только для чтения.
-
Request -
Псевдоним для
BaseRequest
-
class BaseRequest(environ=None)[source] -
Обёртка для словарей окружения WSGI, которая добавляет множество удобных методов доступа и свойств. Большинство из них — только для чтения.
Добавление новых атрибутов к запросу фактически добавляет их в словарь environ (как ‘bottle.request.ext.<name>’). Это рекомендуемый способ хранения и доступа к данным, специфичным для запроса.
-
MEMFILE_MAX = 102400 -
Максимальный размер буфера памяти для
bodyв байтах.
-
MAX_PARAMS = 100 -
Максимальное количество параметров GET или POST на запрос.
-
environ -
Оборачиваемый словарь окружения WSGI environ. Это единственный реальный атрибут. Все остальные атрибуты фактически являются свойствами только для чтения.
-
app[source] -
Приложение Bottle, обрабатывающее этот запрос.
-
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 запроса, закодированного в
url-encodedилиmultipart/form-data. Значения являются экземплярамиcgi.FieldStorage. Наиболее важные атрибуты:- filename
- Имя файла, если указано; в противном случае None; это имя файла со стороны клиента, а не имя файла, в котором он хранится (это временный файл, которым вы не занимаетесь)
- file
- Объект файла (или похожий на файл), из которого можно читать данные.
- value
- Значение как строка; для файловых загрузок это прозрачно считывает файл каждый раз, когда вы запрашиваете значение. Не делайте этого с большими файлами.
-
json[source] -
Если заголовок
Content-Typeимеет значениеapplication/json, это свойство содержит разобранное содержимое тела запроса. Только запросы размером меньшеMEMFILE_MAXобрабатываются для предотвращения исчерпания памяти.
-
body -
Тело HTTP-запроса в виде объекта файла, поддерживающего позиционирование. В зависимости от
MEMFILE_MAX, это либо временный файл, либо экземплярio.BytesIO. Первый доступ к этому свойству считывает и заменяет переменную окруженияwsgi.input. Последующие обращения просто выполняютseek(0)на объекте файла.
-
GET -
Псевдоним для
query.
-
POST[source] -
Объединённые значения
formsиfilesв единыйFormsDict. Значения — либо строки (значения форм), либо экземплярыcgi.FieldStorage(файловые загрузки).
-
COOKIES -
Псевдоним для
cookies(устарело).
-
url -
Полный URI запроса, включая имя хоста и схему. Если ваше приложение находится за обратным прокси или балансировщиком нагрузки и вы получаете путающие результаты, убедитесь, что заголовок
X-Forwarded-Hostустановлен правильно.
-
urlparts[source] -
Строка
urlкак кортежurlparse.SplitResult. Кортеж содержит (схема, хост, путь, строку запроса и фрагмент), но фрагмент всегда пуст, потому что он не виден серверу.
-
fullpath -
Путь запроса, включая
script_name(если он присутствует).
-
query_string -
Необработанная часть
queryURL (всё между?и#) в виде строки.
-
script_name -
Начальная часть пути URL
path, которая была удалена на более высоком уровне (сервером или маршрутизацией) до вызова приложения. Этот путь скрипта возвращается с ведущими и хвостовыми косыми чертами.
-
-
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 -
Истинно, если запрос был вызван объектом XMLHttpRequest. Это работает только с JavaScript-библиотеками, которые поддерживают заголовок
X-Requested-With(большинство популярных библиотек поддерживают).
-
is_ajax -
Псевдоним для
is_xhr. «Ajax» — неверное обозначение.
-
auth -
Данные аутентификации HTTP в виде кортежа (пользователь, пароль). Это реализация в настоящее время поддерживает только аутентификацию по принципу basic (не digest). Если аутентификация произошла на более высоком уровне (например, на front web-сервере или в middleware), поле пароля равно None, но поле пользователя извлекается из переменной окружения
REMOTE_USER. При любых ошибках возвращается None.
-
remote_route -
Список всех IP-адресов, участвовавших в этом запросе, начиная с IP-адреса клиента и далее — нуль или более прокси-серверов. Это работает только если все прокси поддерживают заголовок
`X-Forwarded-For. Обратите внимание, что эта информация может быть подделана злонамеренными клиентами.
-
remote_addr -
IP-адрес клиента в виде строки. Обратите внимание, что эта информация может быть подделана злонамеренными клиентами.
-
Модульный bottle.request — это прокси-объект (реализованный в LocalRequest) и всегда ссылается на текущий запрос, или, другими словами, на запрос, который в данный момент обрабатывается обработчиком запросов в текущей нити. Это thread locality гарантирует, что вы можете безопасно использовать глобальный экземпляр в многопоточной среде.
-
class LocalRequest(environ=None)[source] -
Локальный подкласс
BaseRequestс различными наборами атрибутов для каждой нити. Обычно существует только один глобальный экземпляр этого класса (request). Если к нему обращаются во время цикла запроса/ответа, этот экземпляр всегда ссылается на текущий запрос (даже на сервере с несколькими нитями).-
bind(environ=None) -
Оборачивает словарь WSGI environ.
-
environ -
Локальная свойство, хранящееся в
_lctx.request_environ
-
Объект ответа
Класс Response хранит код HTTP-статуса, а также заголовки и куки, которые должны быть отправлены клиенту. Подобно bottle.request, существует локальный экземпляр bottle.response, который можно использовать для изменения ответа current. Кроме того, вы можете создать экземпляр Response и вернуть его из обработчика запроса. В этом случае, пользовательский экземпляр переопределяет заголовки и куки, определенные в глобальном.
-
Response -
Псевдоним для
BaseResponse
-
class BaseResponse(body='', status=None, **headers)[source] -
Класс для хранения тела ответа, а также заголовков и куки.
Этот класс поддерживает доступ к заголовкам по ключу, не учитывая регистр (как в словаре), но НЕ является словарем. В частности, при итерировании по ответу, выдаются части тела, а не заголовки.
-
copy()[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».
-
charset -
Возвращает кодировку символов, указанную в заголовке content-type (по умолчанию: utf8).
-
COOKIES -
Объект SimpleCookie, подобный словарю. Не следует использовать напрямую. См.
set_cookie().
-
Создает новую куки или заменяет старую. Если параметр
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)[source] -
Локальный подкласс
BaseResponseдля потоков с различными наборами атрибутов для каждого потока. Обычно существует только один глобальный экземпляр этого класса (response). Его атрибуты используются для построения HTTP-ответа в конце цикла запроса/ответа.-
body -
Локальная переменная, хранящаяся в
_lctx.response_body
-
Следующие два класса могут быть подняты как исключение. Самое заметное отличие заключается в том, что bottle вызывает обработчики ошибок для HTTPError, но не для HTTPResponse или других типов ответов.
-
exception HTTPResponse(body='', status=None, header=None, **headers)[source] -
-
output -
Псевдоним для .body
-
-
exception HTTPError(status=None, body=None, exception=None, traceback=None, header=None, **headers)[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 или другими castfilter.
-
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.11/api.html