python - Flask多个视图函数需要用户登录才能指向,如何统一控制
ringa_lee
ringa_lee 2017-04-17 11:04:09
[Python讨论组]

代码如下,诸如 edit(id), delete(id) 这些都需要用户登录后才能执行,而我现在用的是下面这种很初级的方法,导致代码很多冗余,不知道有没有统一简单点的判断方法

if not session.get('logged_in'):
    flash('请先登录')
    return redirect(url_for('login'))
ringa_lee
ringa_lee

ringa_lee

全部回复(4)
巴扎黑

你可以去这个链接看看,有个flask推荐的做法

btw,用flask的时候,如果有不知道如何实现的东西,可以去Patterns for Flask看看,一般都会有惊喜

迷茫

我用一个简单的办法处理了一下

@app.before_request
def accessFilter():
    //处理
    publicUrl = ['login', 'static', 'register']
    if not g.user:
        if request.url.split('/')[3] not in publicUrl:
            //redirect( url_for('login') ) etc.

其中 accessFilter() 方法会在每次请求之前执行

怪我咯

对于登陆控制,可以使用 flask-login 扩展,里面有个 decorator 可以进行登陆控制。

flaskext.login.login_required(fn)

@app.route("/post")
@login_required
def post():
    pass
怪我咯

@login_required

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号