2014-12-02 64 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" 

注:此變量自動提供給模板,這可能是不理想。