📅  最后修改于: 2023-12-03 15:15:05.938000             🧑  作者: Mango
Flask 是一个基于 Python 的轻量级 Web 开发框架,它提供了高效简洁的方式来构建 Web 应用程序。其中一个重要的功能就是 Flask 的静态文件管理。
静态文件是指在 Web 应用中不会动态生成内容的文件,如 CSS、JavaScript、图像等。这些文件通常用于提供网页的样式和交互性,以及处理客户端的请求。
在 Flask 中,默认的静态文件目录是 static
文件夹。你可以在你的 Flask 应用的根目录中创建一个 static
文件夹,并将你的静态文件放置在其中。
- your_flask_app/
- app.py
- static/
- css/
- styles.css
- js/
- script.js
- images/
- logo.png
当你在 Flask 中定义路由时,可以使用特殊的 URL 路径来引用静态文件。静态文件的 URL 路径格式如下:/static/<filename>
。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return app.send_static_file('index.html')
if __name__ == '__main__':
app.run()
在上面的例子中,index.html
是位于 static
文件夹下的静态文件。通过使用 app.send_static_file
方法,我们可以将该文件发送回客户端。
为了更加灵活地引用静态文件,在模板中可以使用 url_for
方法生成静态文件的 URL。
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}">
<script src="{{ url_for('static', filename='js/script.js') }}"></script>
</head>
<body>
<img src="{{ url_for('static', filename='images/logo.png') }}" alt="Logo">
</body>
</html>
url_for('static', filename='css/styles.css')
会生成一个形如 /static/css/styles.css
的静态文件URL,然后我们可以将它用作链接、脚本或图像的 SRC 属性。
Flask 提供了内置的缓存控制功能,可以确保客户端在静态文件更新后能够及时获取到新的版本。
在开发环境下,默认情况下每次请求都会重新发送静态文件。但在生产环境中,你应该启用缓存控制功能,以减少网络请求的次数。
from flask import Flask
app = Flask(__name__)
# 静态文件缓存过期时间为 1 小时
app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 3600
if __name__ == '__main__':
app.run()
通过设置 SEND_FILE_MAX_AGE_DEFAULT
配置项,你可以指定静态文件的缓存过期时间(以秒为单位)。
Flask 提供了灵活而强大的静态文件管理功能,使开发者能够轻松地为 Web 应用添加样式、脚本和图像。通过合理地使用静态文件,你能够提升用户体验,提供更加丰富、动态的网页内容。