Python Flask应用程序抛出运行时错误:在请求上下文之外工作
大家好,我是Python新手,我正在尝试为一个简单的flask应用程序构造一个装饰器。我一直遇到一个运行时错误:在请求上下文之外工作。这是完整的stacktrace,不知道我做错了什么可能是一个noob错误 这是我的密码: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):
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为什么不将其作为一个解决方案发布?非常感谢,我今天已经看了两个小时了!我留了一些头发