decorators.py 文件源码

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

项目:ssr-panel-sanic 作者: gaolycn 项目源码 文件源码
def login_required(f):
    @wraps(f)
    async def decorated_function(*args, **kwargs):
        for arg in args:
            if isinstance(arg, Request):
                uid = arg.get('session', {}).get('uid')
                if uid is None:
                    return response.redirect(arg.app.url_for('auth.LoginView', next=arg.url))
                try:
                    user = await User.objects.get(User.id == uid)
                    arg['uid'] = uid
                    arg['user'] = user
                except User.DoesNotExist:
                    return response.redirect(arg.app.url_for('auth.LoginView', next=arg.url))
                break
        return await f(*args, **kwargs)
    return decorated_function
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号