Python Flask应用程序抛出运行时错误:在请求上下文之外工作

Python Flask应用程序抛出运行时错误:在请求上下文之外工作,python,flask,Python,Flask,大家好,我是Python新手,我正在尝试为一个简单的flask应用程序构造一个装饰器。我一直遇到一个运行时错误:在请求上下文之外工作。这是完整的stacktrace,不知道我做错了什么可能是一个noob错误 这是我的密码: from flask import Flask, session from flask import session from functools import wraps app = Flask(__name__) def check_login(function):

大家好,我是Python新手,我正在尝试为一个简单的flask应用程序构造一个装饰器。我一直遇到一个运行时错误:在请求上下文之外工作。这是完整的stacktrace,不知道我做错了什么可能是一个noob错误

这是我的密码:

from flask import Flask, session
from flask import session
from functools import wraps

app = Flask(__name__)

def check_login(function):
    @wraps(function)
    def decorated_function(*args, **kwargs):
        if 'logged_in' in session:
            return function(*args, **kwargs)
        return 'You are NOT logged in. Please log in to continue'
    return decorated_function()

@app.route('/')
def default_route():
    return 'This is the default page.'

@app.route('/page1')
@check_login
def page_one():
    return 'This is page1.'

app.secret_key = 'Youwillneverguess'

if __name__=='__main__':
    app.run(debug=True)
正如我所说,我是python新手,若你们能给我任何帮助,我将不胜感激

return decorated_function()
应该是

return decorated_function

请注意,在第二个示例中缺少尾随括号。在第一个示例中,您调用的是
修饰的_函数
,而不是返回它。

返回修饰的_函数()
应该是
返回修饰的_函数
(注意在第二个示例中缺少后括号)-您正在调用
装饰函数而不是返回它。@Sean Vieira为什么不将其作为一个解决方案发布?非常感谢,我今天已经看了两个小时了!我留了一些头发