【问题标题】:Python Flask app throwing RuntimeError: working outside of request contextPython Flask 应用程序抛出 RuntimeError:在请求上下文之外工作
【发布时间】:2015-11-12 16:50:57
【问题描述】:

大家好,我是 Python 新手,我正在尝试为简单的烧瓶应用程序构建装饰器。我不断收到 RuntimeError:在请求上下文之外工作。这是完整的堆栈跟踪,不知道我在这里做错了什么可能是菜鸟错误

这是我的代码:

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(请注意第二个示例中缺少尾括号) - 您是在 调用 decorated_function 而不是返回它。
  • @Sean Vieira 你为什么不把它作为独奏发布?
  • 非常感谢,今天看了2个小时!拯救了我的一些头发

标签: python flask


【解决方案1】:
return decorated_function()

应该是

return decorated_function

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-17
    • 2023-02-03
    • 2015-10-17
    • 2021-09-17
    • 1970-01-01
    相关资源
    最近更新 更多