我有以下代码:
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)
问题是如何将param1
传递给func2
,而不是作为函数参数传递。在我的项目中func2()
在另一个模块中,我的URL中有很多参数。我是否可以param1
从func2
访问flask.request
,例如通过func2
或类似的内容?
是的我知道我可以将所有必要的参数放入字典并将此字典传递给{{1}}和另一个函数,但我想知道是否有其他方法可以访问url-parameters。
答案 0 :(得分: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"
注意:此变量可自动用于模板,这可能是不可取的。