Flask 展示静态文件

Flask 同时被 2 个专栏收录
13 篇文章 0 订阅
130 篇文章 9 订阅

目录

描述

通过url直接访问静态文件

通过路由访问

重定向访问


描述

Flask可以在浏览器中展示静态文件(例如txt文件、json文件、html文件等)。展示静态文件的手段有三种,分别是直接输入url访问、通过路由访问和重定向访问。

通过url直接访问静态文件

首先要在Python工程中创建一个目录static(名字和相对位置均不能改动)。如下所示:

在static目录下创建想要展示的文件。在这里我创建了一个test1.json和case.html

test1.json:

{
  "name": "MacBook Pro",
  "system": "Mac OS X"
}

case.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Case test</title>
</head>
<body>
    <h1>Demo HTML file</h1>
    <p>This is a demo file for Python flask. It's very interesting.</p>
    <p>I love python. And I also love you.</p>
</body>
</html>

static目录中的文件分布如下:

接着在python工程目录下创建class7.py,也就是使用Flask框架的脚本:

脚本代码如下:

import webbrowser
from flask import Flask

app = Flask(__name__)

if __name__ == "__main__":
    webbrowser.open("http://127.0.0.1:5000")
    app.run()

脚本中初始化Flask类然后启动它。没有定义任何函数。

现在来启动class7.py,代码默认打开根路由:http://127.0.0.1:5000/

页面报错404.这是因为我们没有定义根路由。因此现象是正常的。

接下来我们先访问test1.json文件。在浏览器中输入:http://127.0.0.1:5000/static/test1.json,浏览器成功显示出test1.json文件中的全部内容:

接着访问casse.html,使用同样的方式:在浏览器中输入 http://127.0.0.1:5000/static/case.html

?提示:修改静态文件不需要重启Flask服务器就可以看到修改后的显示效果。

通过路由访问

可以定义一个路由访问静态文件。(文件路径结构保持不变)

下面的代码定义了一个静态路由/show,在该路由下会展示/static/test1.json文件中的内容(通过show_file函数调用send_static_file方法实现)

import webbrowser
from flask import Flask

app = Flask(__name__)

# 通过路由访问
# 运行程序,http://127.0.0.1:5000/show
@ app.route("/show")
def show_file():
    return app.send_static_file("test1.json")

if __name__ == "__main__":
    webbrowser.open("http://127.0.0.1:5000")
    app.run()

运行代码,在浏览器中输入:http://127.0.0.1:5000/show, 就可以在浏览器中看到test1.json文件的内容了。

重定向访问

定义一个路由,使用redirect()函数将路由重定向到静态文件的url。通过路由重定向访问静态文件。

下面的代码定义了静态路由/demo。函数direct_show()中调用redirect()方法将路由重定向到静态文件的url。

import webbrowser
from flask import Flask, redirect

app = Flask(__name__)

# 重定向访问
# 运行程序,http://127.0.0.1:5000/demo
@ app.route("/demo")
def direct_show():
    return redirect("/static/case.html")


if __name__ == "__main__":
    webbrowser.open("http://127.0.0.1:5000")
    app.run()

运行代码,在浏览器中输入 http://127.0.0.1:5000/demo,输入完毕后浏览器url会自动跳转到 http://127.0.0.1:5000/static/case.html。

  • 3
    点赞
  • 2
    评论
  • 10
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值