gpt4 book ai didi

python - 如何通过 app.run() 将任意参数传递给 Flask?

转载 作者:太空宇宙 更新时间:2023-11-03 14:47:13 29 4
gpt4 key购买 nike

我想将对象传递给新启动的 Flask 应用程序。我尝试按照问题的解决方案进行操作:how-can-i-make-command-line-arguments-visible-to-flask-routes

编辑

我想获取从命令行启动 python 脚本时获取的值。

即。

$ run python flaskTest.py -a goo

我没有看出这与我尝试复制的问题的解决方案之间的区别。编辑

因此,我尝试了以下方法:

from flask import Flask

app = Flask(__name__)

print('Passed item: ', app.config.get('foo'))

if __name__ == '__main__':
from argparse import ArgumentParser

parser = ArgumentParser()
parser.add_argument('-a')
args = parser.parse_args()
val = args.a

app.config['foo'] = val
app.run()

希望得到结果...

'Passed item: Goo'

是否有通过 app.run() 初始化传递任意对象的方法?

最佳答案

好吧,脚本是从上到下执行的,因此您无法打印您还没有的东西。将 print 语句放在经典的 flask 工厂函数中允许您首先解析命令行,然后获取对象并使用它:

from flask import Flask

def create_app(foo):
app = Flask(__name__)
app.config['foo'] = foo
print('Passed item: ', app.config['foo'])
return app

if __name__ == '__main__':
from argparse import ArgumentParser
parser = ArgumentParser()
parser.add_argument('-a')
args = parser.parse_args()
foo = args.a
app = create_app(foo)
app.run()

关于python - 如何通过 app.run() 将任意参数传递给 Flask?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48346025/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com