2014-12-02 69 views
0

得到的参数我有下面的代码:如何从根本功能

from flask import Flask 

app = Flask(__name__) 

@app.route("/<param1>", methods=["GET"]) 
def func1(param1): 
    return func2() 

def func2(): 
    return "mystring" 

if __name__ == "__main__": 
    app.run(host="0.0.0.0", port=8080, debug=True) 

的问题是如何通过param1func2但不能作为函数参数。在我的项目func2()是在另一个模块中,我的网址中有很多参数。我可以通过func2访问param1,例如通过flask.request或类似的东西吗?

是的我知道我可以将所有必要的参数放到字典中,并将此字典传递给func2和另一个函数,但我想知道是否有其他方法来访问url参数。

+1

可能会查看[current_app](http://flask.pocoo.org/docs/0.10/api/#flask.current_app)。但我认为这不是一个自然的要求。只要将它作为参数传递,我使用默认的'= None',这样你就可以在没有它的情况下调用它。 – wenzul 2014-12-02 15:55:39

回答

1

Flask提供变量g,该变量在请求的生命周期中存在。根据你的情况,这可能是一个适当的用途。

要使用它,将其导入:

from flask import g 

在您的例子:

@app.route("/<param1>", methods=["GET"]) 
def func1(param1): 
    g.info = "Hello world" 
    return func2() 

def func2(): 
    if g.info == "Hello world": 
     return "Hello world" 
    return "mystring" 

注:此变量自动提供给模板,这可能是不理想。