欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask :将 Flask 应用“冻结”为静态文件

2025/9/23 3:48:28 来源:https://blog.csdn.net/lycwhu/article/details/148554822  浏览:    关键词:Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。


🚀 主要用途

  • 将 Flask 动态网站变成 静态网站,无须后端服务器支持。
  • 用于构建博客、文档网站或展示页面等无需后端逻辑的项目。

🧊 Frozen-Flask 如何工作?

Frozen-Flask 会访问 Flask 应用中通过 url_for() 明确指定的页面路径,并将对应的 HTML 页面下载下来保存为 .html 文件。例如:

@app.route('/')
def index():return render_template('index.html')

只要你在项目中使用 url_for('index') 或显式注册了路径,Frozen-Flask 就能把它保存为 index.html 文件。


✅ 使用步骤

  1. 安装:
pip install Frozen-Flask
  1. 创建一个 freeze.py 文件:
from flask_frozen import Freezer
from myapp import app  # 假设你的 Flask 实例在 myapp.py 中freezer = Freezer(app)if __name__ == '__main__':freezer.freeze()
  1. 执行:
python freeze.py

这会生成一个 build/ 文件夹,其中包含了你整个网站的静态 HTML 文件结构。


⚠️ 注意事项

  • 适用于没有用户交互、数据库写入等动态功能的项目。
  • 如果你使用动态 URL(比如 /post/<id>),需要手动提供所有路径,告诉 Frozen-Flask 该生成哪些页面。
  • 不支持动态 AJAX 请求或服务器端数据处理。

你可以通过定义一个 @freezer.register_generator 的函数来告诉它生成哪些动态路径,例如:

@freezer.register_generator
def post():for post_id in range(1, 10):yield {'id': post_id}

🔚 总结

Frozen-Flask 是一个将 Flask 网站导出为纯静态网站的工具,适用于博客、文档、展示类项目,不需要后端服务器,部署方便。

如果你打算将一个 Flask 项目变成可以放在 GitHub Pages 上的静态网页,Frozen-Flask 是个很合适的选择。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词