__init__.py 文件源码

python
阅读 24 收藏 0 点赞 0 评论 0

项目:jinja2-sanic 作者: yunstanford 项目源码 文件源码
def template(template_name, *, app_key=APP_KEY, encoding='utf-8',
             headers=None, status=200):
    """
    Decorate web-handler to convert returned dict context into sanic.response.Response
    filled with template_name template.

    :param template_name: template name.
    :param request: a parameter from web-handler, sanic.request.Request instance.
    :param context: context for rendering.
    :param encoding: response encoding, 'utf-8' by default.
    :param status: HTTP status code for returned response, 200 (OK) by default.
    :param app_key: a optional key for application instance. If not provided,
                    default value will be used.
    """
    def wrapper(func):
        @functools.wraps(func)
        async def wrapped(*args, **kwargs):

            if asyncio.iscoroutinefunction(func):
                coro = func
            else:
                coro = asyncio.coroutine(func)

            context = await coro(*args, **kwargs)

            if isinstance(context, HTTPResponse):
                return context

            if isinstance(args[0], HTTPMethodView):
                request = args[1]
            else:
                request = args[0]

            return render_template(template_name, request, context,
                                   app_key=app_key, encoding=encoding)
        return wrapped

    return wrapper
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号