Метод wsgi_app
Метод wsgi_app применяется к приложению Flask
и представляет собой точку входа для WSGI-сервера.
Первым параметром передаётся окружение WSGI environ,
вторым - функция start_response для отправки
заголовков ответа. Метод возвращает итерируемый объект
с телом ответа. Обычно этот метод вызывается самим
WSGI-сервером, а не разработчиком напрямую.
Синтаксис
app.wsgi_app(environ, start_response)
Пример
Давайте создадим приложение Flask и вызовем
метод wsgi_app вручную, передав ему
окружение и функцию start_response:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'hello'
environ = {
'REQUEST_METHOD': 'GET',
'PATH_INFO': '/',
'SERVER_NAME': 'localhost',
'SERVER_PORT': '5000',
'wsgi.url_scheme': 'http',
}
def start_response(status, headers):
print(status)
res = app.wsgi_app(environ, start_response)
print(list(res))
Результат выполнения кода:
200 OK
[b'hello']
Пример
Давайте обработаем маршрут с параметром через
метод wsgi_app и получим тело ответа:
from flask import Flask
app = Flask(__name__)
@app.route('/user/<name>')
def user(name):
return name
environ = {
'REQUEST_METHOD': 'GET',
'PATH_INFO': '/user/abcde',
'SERVER_NAME': 'localhost',
'SERVER_PORT': '5000',
'wsgi.url_scheme': 'http',
}
def start_response(status, headers):
print(status)
res = app.wsgi_app(environ, start_response)
print(list(res))
Результат выполнения кода:
200 OK
[b'abcde']
Смотрите также
-
класс
Flask,
который представляет приложение Flask -
метод
run,
который запускает сервер разработки -
метод
request_context,
который создаёт контекст запроса -
метод
test_client,
который создаёт клиент для тестирования приложения