(仍然)获取RuntimeError:在请求上下文之外工作。在尝试app.app_context()时

时间:2016-11-02 07:24:25

标签: python flask request

from flask import Flask, request
app = Flask(__name__)

@app.route('/post/', methods=['GET', 'POST'])
def update_post():
    # show the post with the given id, the id is an integer
    postId = request.args.get('postId')
    uid = request.args.get('uid')
    return postId, uid

def getpostidanduid():
    with app.app_context():
        credsfromUI = update_post()
        app.logger.message("The postId is %s and uid is %s" %(request.args.get('postId'), request.args.get('uid')))
        ## Prints 'The post id is red and uid is blue'\
    return credsfromUI

print(getpostidanduid())

if __name__ == '__main__':
    # This is used when running locally. Gunicorn is used to run the
    # application on Google App Engine. See entrypoint in app.yaml.
    app.run(host='127.0.0.1', port=8080, debug=True)
# [END app]

这是一个在浏览器URL(postId和uid)中接受两位信息的程序,应该允许我在程序中引用它们。对于我的简单python程序,我无法弄清楚为什么我仍然会遇到RuntimeError:在请求上下文之外工作。

这通常意味着您尝试使用所需的功能 一个活动的HTTP请求。请参阅有关测试的文档 有关如何避免此问题的信息。

我正在使用with app.app_context(),但它不允许我在请求中阻止变量的内容。我已经阅读了文档并查看了其他解决方案,但仍然卡住了。请帮帮忙?

1 个答案:

答案 0 :(得分:2)

因此,如果我定义一个函数,它在python中具有全局作用域,因此我可以在app.route()/ request上下文限制函数中调用它来获取request.args.get(var)。

get :action, id: [id_of_resource]