Flask中如何提供静态文件

1、可以使用send_from_directory从目录发送文件,这在某些情况下非常方便。

from flask import Flask, request, send_from_directory
 
# set the project root directory as the static folder, you can set others.
app = Flask(__name__, static_url_path='')
 
@app.route('/js/<path:path>')
def send_js(path):
    return send_from_directory('js', path)
 
if __name__ == "__main__":
    app.run()

2、可以使用app.send_file或app.send_static_file,但强烈建议不要这样做。

因为它可能会导致用户提供的路径存在安全风险。

send_from_directory旨在控制这些风险。

最后,首选方法是使用NGINX或其他Web服务器来提供静态文件,将能够比Flask更有效地做到这一点。

Flask 编程技术、程序设计和范例源码:Flask 是一个使用 Python 编写的,用于开发 Web 应用的轻量级框架。Flask 的 WSGI 工具箱采用了 Werkzeug,模板引擎则使用了 Jinja2。Werkzeug 和 Jinja2 是 Flask 框架的核心。Flask 又被称为 microframework(微框架),因为它使用了简单的核心,并用 extension 增加其它功能。