我想将一个对象传递给新启动的烧瓶应用程序。我尝试按照问题的解决方案进行操作:how-can-i-make-command-line-arguments-visible-to-flask-routes
编辑
我想从命令行启动 python 脚本中获取一个值。
IE。
$ run python flaskTest.py -a goo
Run Code Online (Sandbox Code Playgroud)
我没有看到这与我试图复制的问题的解决方案之间的区别。 编辑
因此,我尝试了以下方法:
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()
Run Code Online (Sandbox Code Playgroud)
希望得到结果...
'Passed item: Goo'
Run Code Online (Sandbox Code Playgroud)
是否有通过 app.run() 初始化传递任意对象的方法?
那么脚本是从上到下执行的,所以你不能打印你还没有的东西。将打印语句放在经典的烧瓶工厂函数中,您可以先解析命令行,然后获取对象,然后使用它:
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()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14810 次 |
| 最近记录: |