Flask静态文件访问添加路径
在使用Flask开发web应用程序时,经常会使用静态文件来提供样式、图片、脚本等资源。Flask默认会从static
文件夹中读取静态文件,然后将其映射到根URL(/
)上。但有时我们希望将静态文件映射到指定的路径上,本文就将详细介绍如何在Flask应用程序中实现静态文件访问添加路径的功能。
1. 创建Flask应用程序
首先,我们需要安装Flask,并创建一个简单的Flask应用程序。可以使用以下命令安装Flask:
pip install Flask
然后创建一个名为app.py
的Python文件,编写以下代码:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
在这个应用程序中,我们定义了一个路由/
,当用户访问根URL时,将渲染一个名为index.html
的模板。
2. 创建静态文件
在应用程序的根目录下创建一个名为static
的文件夹,并在里面放入一些静态文件,比如样式文件、图片文件、脚本文件等。
3. 访问静态文件
启动Flask应用程序后,我们可以通过访问http://localhost:5000/static/文件名
来访问静态文件。比如,如果我们有一个样式文件style.css
,可以通过http://localhost:5000/static/style.css
来访问它。
4. 添加路径访问静态文件
现在,我们将介绍如何在Flask应用程序中设置静态文件的路径,以便通过指定的路径来访问静态文件。
修改app.py
文件,添加以下代码:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/static_files/<path:filename>')
def static_files(filename):
return app.send_static_file(filename)
@app.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
在这个修改后的应用程序中,我们添加了一个新的路由/static_files/<path:filename>
,并定义了一个新的视图函数static_files
。在这个视图函数中,我们使用app.send_static_file
方法来返回静态文件。
现在,我们可以通过访问http://localhost:5000/static_files/文件名
来访问静态文件。比如,要访问style.css
文件,可以通过http://localhost:5000/static_files/style.css
来访问。
5. 运行示例
为了演示上述功能,我们可以创建一个简单的HTML文件index.html
,并引入一个样式文件style.css
。
index.html
代码如下:
<!DOCTYPE html>
<html>
<head>
<title>Flask Static File</title>
<link rel="stylesheet" href="/static_files/style.css">
</head>
<body>
<h1>Hello, Flask!</h1>
</body>
</html>
style.css
代码如下:
body {
background-color: lightblue;
}
h1 {
color: navy;
}
将上述两个文件放入static
文件夹中,然后启动Flask应用程序,访问http://localhost:5000/
即可看到效果。