如何通过flask run传递命令行参数给使用argv的Flask应用
解决Flask run传递命令行参数的问题
你可以通过两种方式给使用sys.argv的Flask应用传递参数:
方法一:用--分隔Flask命令与应用参数
flask run命令支持用--来区分自身的参数和要传递给应用的参数,直接在--后面加上你的路径参数即可:
FLASK_APP=example.py flask run -- home/dir1/dir2
如果已经提前设置了FLASK_APP环境变量,可简化为:
flask run -- home/dir1/dir2
这样你的应用里sys.argv[1]就能拿到home/dir1/dir2这个路径,和直接执行python3 example.py home/dir1/dir2的效果一致。
方法二:通过环境变量传递参数
如果不想用命令行参数的方式,也可以把路径放到环境变量里,在应用中读取:
- 修改
example.py代码,添加环境变量读取逻辑:
import sys import os # 优先读取环境变量,没有则 fallback 到命令行参数 target_dir = os.environ.get('TARGET_DIR') or (sys.argv[1] if len(sys.argv) > 1 else '')
- 启动时设置环境变量:
TARGET_DIR=home/dir1/dir2 FLASK_APP=example.py flask run
内容的提问来源于stack exchange,提问作者bobs
相关产品推荐
相关产品推荐

