AIOHTTP Server - шаблоны Jinja для условий повышения - PullRequest
0 голосов
/ 06 февраля 2020

При создании сайта с помощью AIOHTTP Web я мог бы определить маршрут и выдать ошибку, например:

async def index(request):
    if some_error_happened:
        raise web.HTTPException(body=b'Some error happened.')
    context = {'page_title': "My Site"}
    response = aiohttp_jinja2.render_template('index.html', request, context)
    return response

Это покажет текст, указанный для body, но как я могу использовать Jinja2 с ним как обычные маршруты?

Я нашел модуль jinja2_error , но я не вижу, как использовать его в контексте маршрута aiohttp.

1 Ответ

0 голосов
/ 06 февраля 2020

Использование aiohttp_jinja2.render_string:

async def index(request):
    if some_error_happened:
        raise web.HTTPBadRequest(
            text=aiohttp_jinja2.render_template(
                'index.html', 
                request, 
                {"error": "Some error happened"},
            )
        )
    context = {'page_title': "My Site"}
    response = aiohttp_jinja2.render_template('index.html', request, context)
    return response
...