python的全局变量应用

来源:互联网 发布:怎么给淘宝商家打电话 编辑:程序博客网 时间:2024/06/05 23:39

昨天晚上把博客写完之后,不知道哪里灵光一闪,想到用全局变量解决登录之后用户保存,来发表博客。结果,还真可以了。

global 用来强调跟在后面的小弟是全局变量,而小弟是一开始存在的,是要在函数里面用的时候用global来说明它是全局变量。

zyuser=''@app.route('/',methods=['GET','POST'])def index():    form=loginForm()    global zyuser    if form.validate_on_submit():        user=User.query.filter_by(username=form.name.data).first()        zyuser=user        word=User.query.filter_by(password=form.password.data).first()        if user is None and word is None:            newuser=User(username=form.name.data,password=form.password.data)            db.session.add(newuser)            session['know']=False        else:            session['know']=True        if user is not None:            load_user(user.id)            return redirect(url_for('.login'))        session['name']=form.name.data        form.name.data=''    return render_template('index.html',form=form,name=session.get('name'),know=session.get('know',False))@app.route('/login',methods=['GET','POST'])def login():    form=PostForm()    global zyuser    if form.validate_on_submit():        post=Post(body=form.body.data,author=zyuser)        db.session.add(post)        return redirect(url_for('.login'))    posts=Post.query.order_by(Post.timestamp.desc()).all()    return render_template('auth/mainLogin.html',form=form,posts=posts)
注意看我的zyuser,简直了,真是帮了大忙。在登录的index里面zyuser记录了此次登录的用户名。然后在login里面使用其就可以保证了前后用户一致。

困扰了几天的问题,结果就暂时的这样解决了。没用到什么flask-login里面的g啥openid啥的。

这样我知道是仅仅解决了一个问题而已,实际网页中和代码中哪里傻了B了来用这种办法。

无非是让我对全局变量更加印象深刻了而已。

当然也忘不了昨天晚上解决这个问题之后的激动心情。

0 0