Метод wsgi
Метод wsgi применяется к приложению
Bottle и возвращает WSGI-совместимый
вызываемый объект. Этот объект принимает
два аргумента: окружение environ
и функцию start_response. Метод
позволяет встроить приложение Bottle в
другой WSGI-стек или запустить его на
стороннем WSGI-сервере.
Синтаксис
app.wsgi(environ, start_response)
Пример
Давайте получим WSGI-объект приложения и вызовем его напрямую с тестовым окружением:
from bottle import Bottle
app = Bottle()
@app.route('/')
def index():
return 'hello'
environ = {
'REQUEST_METHOD': 'GET',
'PATH_INFO': '/',
'SERVER_NAME': 'localhost',
'SERVER_PORT': '80',
'wsgi.url_scheme': 'http',
'wsgi.input': None,
'wsgi.errors': None,
'wsgi.version': (1, 0),
'wsgi.multithread': False,
'wsgi.multiprocess': False,
'wsgi.run_once': False,
}
def start_response(status, headers):
print(status)
res = app.wsgi(environ, start_response)
print(b''.join(res).decode())
Результат выполнения кода:
"200 OK"
"hello"
Пример
Давайте обернём приложение Bottle в
сторонний WSGI-сервер, например
wsgiref:
from bottle import Bottle
from wsgiref.simple_server import make_server
app = Bottle()
@app.route('/user/<name>')
def user(name):
return name
server = make_server('localhost', 8080, app.wsgi)
server.serve_forever()
Результат выполнения кода для адреса /user/abcde:
<+html+>
abcde
<-html+>