如何使命令行参数对Flask路由可见?

JET*_*ETM 8 python flask

我正在使用Flask构建一个工具来在浏览器中本地查看数据.我想将包含数据的目录作为命令行参数传递,然后将其传递给相应的路由函数以进行渲染.

这样做我想要的,但有全局变量:

dataDir = None

def initializeData(pathname):
    global dataDir
    dataDir = pathname

@app.route('/')
def home():
    # Use dataDir as desired

if __name__ == '__main__':
    initializeData(sys.argv[1])
    app = Flask(__name__)
    app.run()
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法在命令行和我的路由之间进行通信?

Way*_*ner 15

您的烧瓶应用程序有一个config属性.此外,此代码将失败并出现NameError.你想要这样的东西:

import sys
from flask import Flask

app = Flask(__name__)


@app.route('/')
def home():
    return 'You wanted {!r} directory'.format(app.config.get('some_setting'))

if __name__ == '__main__':
    app.config['some_setting'] = sys.argv[1]
    app.run()
Run Code Online (Sandbox Code Playgroud)