文章内容
2025/9/16 19:39:58,作 者: 黄兵
Flask 更新了模板,部署到服务器,是否需要重启程序
不一定要重启,但建议重启,原因如下:
1. Flask 模板文件的加载机制
-
开发模式(debug=True):
Flask 会开启模板自动重载,模板文件修改后会自动生效,无需重启程序。 -
生产模式(debug=False):
Flask 默认会缓存模板(Jinja2 会启用FileSystemLoader的缓存),模板更新后不会立即生效,除非:-
清空 Jinja2 缓存(
jinja_env.cache.clear()),或者 -
重启 WSGI 应用(uWSGI、Gunicorn 等)。
-
2. 生产环境常用部署方式
如果你用的是 uWSGI + Flask 或 Gunicorn + Flask,通常生产模式都会缓存模板。
因此,更新模板后通常做法是:
-
优先选择:重启 WSGI 服务(例如
systemctl restart uwsgi或touch /path/to/uwsgi.ini触发 reload)。 -
替代方案:在代码中调用:
from flask import current_app current_app.jinja_env.cache.clear()可以手动清空模板缓存,无需重启程序,但要注意加权限保护,避免被滥用。
3. 推荐做法
-
生产环境:建议重启程序,这样保证模板更新、静态文件缓存、配置变更全部生效。
-
开发环境:不用重启,Flask 会自动检测变更。
评论列表