shortcuts.py 文件源码

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

项目:jiango 作者: yefei 项目源码 文件源码
def renderer(prefix=None, template_ext='html', content_type=settings.DEFAULT_CONTENT_TYPE, do_exception=None):
    """ return HttpResponse()
        return {'var': value ...}
        return 'template' or '/root_template'
        return 'template1', 'template2' ...
        return 'template', {'var': value ...}
        return 'template1', 'template2', ... {'var': value ...}
    """
    def do_renderer(func):
        @wraps(func)
        def wrapper(request, *args, **kwargs):
            response = HttpResponse(content_type=content_type)
            try:
                result = func(request, response, *args, **kwargs)
            except HttpReload as e:
                return e.response(request, response)
            except Exception as e:
                if do_exception:
                    result = do_exception(request, response, e)
                else:
                    raise
            if isinstance(result, HttpResponse):
                return result
            response.content = render_to_string(request, result, func.__name__.rstrip('_'), prefix, template_ext)
            return response
        return wrapper
    return do_renderer
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号