python - 在 Linux 下模板文件更改时重新加载 Flask 应用程序

标签 python linux flask jinja2

我正在 Linux 下开发一个 flask 应用程序,当我对模板文件进行任何更改时,我感到很痛苦。

实际上我很好地配置了我的应用程序以使用

重新加载模板更改
TEMPLATES_AUTO_RELOAD = True

PS:当我在 Windows 下开发时,模板可以正常重新加载。


编辑

我正在使用内置服务器,我这样运行我的应用程序:

app = create_app()
manager = Manager(app)

@manager.command
def run():
    """Run in local machine."""
    app.run(threaded=True)

这是我的配置类

 class DefaultConfig(object):
    # Project name
    PROJECT = "***"
    # Turns on debugging features in Flask
    DEBUG = True
    # secret key
    SECRET_KEY = "**************"
    # Configuration for the Flask-Bcrypt extension
    BCRYPT_LEVEL = 12
    # Application root directory
    APP_ROOT = os.path.dirname(os.path.abspath(__file__))
    # Application email
    MAIL_FROM_EMAIL = "**********"
    # Upload directory
    UPLOAD_DIR = "static/uploads/"
    # Avater upload directory
    UPLOAD_AVATAR_DIR = os.path.join(UPLOAD_DIR, 'avatars/')
    ALLOWED_AVATAR_EXTENSIONS = set(['png', 'jpg', 'jpeg', 'gif'])
    # Instance folder path
    INSTANCE_FOLDER_PATH = os.path.join('/home/karim/OpenXC/Dashboard/Flask', 'instance')
    # Cache configuration
    CACHE_TYPE = 'null'
    CACHE_DEFAULT_TIMEOUT = 60
    TEMPLATES_AUTO_RELOAD = True
    # ToolbarExtention Configuration
    DEBUG_TB_ENABLED = False
    DEBUG_TB_INTERCEPT_REDIRECTS = False
    DEBUG_TB_TEMPLATE_EDITOR_ENABLED = True
    DEBUG_TB_PROFILER_ENABLED = True

关于缓存我正在使用禁用的缓存扩展。请检查配置文件。

谢谢,

最佳答案

我设法通过将我的模板文件夹添加到 Flask 应用程序的 extra_files 参数来解决我的问题

方法如下:

extra_dirs = [
    '/home/karim/flak_app/templates',
]

extra_files = extra_dirs[:]
for extra_dir in extra_dirs:
    for dirname, dirs, files in os.walk(extra_dir):
        for filename in files:
            filename = os.path.join(dirname, filename)
            if os.path.isfile(filename):
                extra_files.append(filename)

app.run(threaded=True, extra_files=extra_files)

希望有一天这会对某人有所帮助:)

关于python - 在 Linux 下模板文件更改时重新加载 Flask 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41063039/

相关文章:

python - OpenCV .imshow() 未显示正确大小的图像

linux - 通过脚本设置永久路径

python - 为什么我的表单试图提交到错误的端点?

python - 在两个应用程序之间使用 url_for

java - 停止Linux服务器中的未知进程

python - flask-jwt-extended:测试期间的假授权 header (pytest)

python - 从单列中的子字符串/正则表达式匹配创建多个新的数据框列

python - 每当我重新启动系统并启动 GAE Launcher 时,Google App Engine 都会出错

python - 条件表达式返回类型

linux - 目录统计命令行界面?