【问题标题】:Make dev_appserver.py listen for changes让 dev_appserver.py 监听变化
【发布时间】:2021-04-15 05:43:59
【问题描述】:

我正在开发一个 Python 3 Flask 应用程序并运行 dev_appserver.py 以在本地进行测试。

我发现当我修改我的 Jinja 模板时,即使我在浏览器中用力刷新,本地实例似乎也没有接收到这些更改。我能够接受更改的唯一方法是终止脚本并再次运行它。

我在官方文档中没有发现任何提及这一点,--help 只提到了一个相关标志,它说默认情况下观察者什么都不忽略:

  --watcher_ignore_re WATCHER_IGNORE_RE
                        Regex string to specify files to be ignored by the
                        filewatcher. (default: None)

【问题讨论】:

    标签: python google-app-engine flask google-app-engine-python


    【解决方案1】:

    您可以将额外文件传递给Flask().run(),如下所示:

    from os import path, walk
    
    extra_dirs = ['directory/to/watch',]
    extra_files = extra_dirs[:]
    for extra_dir in extra_dirs:
        for dirname, dirs, files in walk(extra_dir):
            for filename in files:
                filename = path.join(dirname, filename)
                if path.isfile(filename):
                    extra_files.append(filename)
        
    
    app.run(extra_files=extra_files)
    

    【讨论】:

    • 似乎对我不起作用。我仔细检查了 extra_files 生成在 Python shell 中是否正常工作。我的最后一行是app.run(host='localhost', port=8080, debug=True, extra_files=extra_files),但刷新时仍然没有出现模板更改。
    • @DaveW.Smith 我设置了app.config['TEMPLATES_AUTO_RELOAD'] = True 并且它有效,但仅适用于第一个模板更改。本地服务器似乎没有接受任何后续更改。努力刷新并使用隐身窗口只是为了确定。
    猜你喜欢
    • 2021-09-21
    • 1970-01-01
    • 2013-07-22
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 2013-01-05
    • 1970-01-01
    • 2011-11-27
    相关资源
    最近更新 更多