Python 属性错误:'_AppCtxGlobals&x27;对象没有属性';用户';烧瓶

Python 属性错误:'_AppCtxGlobals&x27;对象没有属性';用户';烧瓶,python,flask,attributeerror,Python,Flask,Attributeerror,我正试着通过以下方法来学习烧瓶。在中,login()视图的编辑方式如下: @app.route('/login', methods = ['GET', 'POST']) @oid.loginhandler def login(): if g.user is not None and g.user.is_authenticated(): return redirect(url_for('index')) form = LoginForm() if form.

我正试着通过以下方法来学习烧瓶。在中,login()视图的编辑方式如下:

@app.route('/login', methods = ['GET', 'POST'])
@oid.loginhandler
def login():
    if g.user is not None and g.user.is_authenticated():
        return redirect(url_for('index'))
    form = LoginForm()
    if form.validate_on_submit():
        session['remember_me'] = form.remember_me.data
        return oid.try_login(form.openid.data, ask_for = ['nickname', 'email'])
    return render_template('login.html', 
        title = 'Sign In',
        form = form,
        providers = app.config['OPENID_PROVIDERS'])
但是,这会给我一个AttributeError,我将在下面粘贴StackTrace。它给出了一个错误,我从示例的来源粘贴了一个错误。我确实使用了而不是SQLAlchemy,但是由于这段代码对DB没有任何作用,我不知道为什么会有关联

有人知道我可能做错了什么吗

回溯(最近一次呼叫最后一次):
文件“/Users/kramer65/dev/repos/microblog/flask/lib/python2.7/site packages/flask/app.py”,第1836行,in__call__
返回self.wsgi_应用程序(环境,启动响应)
wsgi_应用程序中的文件“/Users/kramer65/dev/repos/microblog/flask/lib/python2.7/site packages/flask/app.py”,第1820行
响应=self.make\u响应(self.handle\u异常(e))
文件“/Users/kramer65/dev/repos/microblog/flask/lib/python2.7/site packages/flask/app.py”,第1403行,在handle_exception中
重放(exc_类型、exc_值、tb)
wsgi_应用程序中的文件“/Users/kramer65/dev/repos/microblog/flask/lib/python2.7/site packages/flask/app.py”,第1817行
response=self.full\u dispatch\u request()
文件“/Users/kramer65/dev/repos/microblog/flask/lib/python2.7/site packages/flask/app.py”,第1477行,完整发送请求
rv=自身处理用户异常(e)
文件“/Users/kramer65/dev/repos/microblog/flask/lib/python2.7/site packages/flask/app.py”,第1381行,在handle\u user\u exception中
重放(exc_类型、exc_值、tb)
文件“/Users/kramer65/dev/repos/microblog/flask/lib/python2.7/site packages/flask/app.py”,第1475行,完整发送请求
rv=自我分派请求()
文件“/Users/kramer65/dev/repos/microblog/flask/lib/python2.7/site packages/flask/app.py”,第1461行,发送请求
返回self.view_函数[rule.endpoint](**req.view_参数)
文件“/Users/kramer65/dev/repos/microblog/flask/lib/python2.7/site-packages/flask_-openid.py”,第446行,共页
返回f(*args,**kwargs)
文件“/Users/kramer65/dev/repos/microblog/app/views.py”,第31行,登录
如果g.user不是None,并且g.user.is_经过身份验证():
文件“/Users/kramer65/dev/repos/microblog/flask/lib/python2.7/site packages/werkzeug/local.py”,第338行,在__
返回getattr(self.\u get\u current\u object(),name)
AttributeError:“\u AppCtxGlobals”对象没有属性“user”

同一个教程进一步解释了如何设置
g.user

全球用户 如果您注意了,您会记得,在登录视图功能中,我们检查
g.user
,以确定用户是否已登录。为了实现这一点,我们将使用Flask中的
before\u request
事件。每次收到请求时,在请求之前用
修饰的任何函数都将在查看函数之前运行。因此,这是设置我们的
g.user
变量(文件
app/views.py
)的正确位置:

这就是一切。
当前用户
全局由Flask登录设置, 因此,我们只需在
g
对象中放置一个副本,以便更好地访问它。 这样,所有请求都可以访问登录用户,甚至 内部模板

您的代码显然在请求处理程序之前缺少此

@app.before_request
def before_request():
    g.user = current_user