flask返回静态页面html文件,如何在Flask中提供静态文件

如何在Flask中提供静态文件

所以这很尴尬。我有一个应用程序,我把它放在一起,Flask现在它只是提供一个静态HTML页面,其中包含一些CSS和JS的链接。我无法在文档Flask中找到返回静态文件的位置。是的,我可以使用,render_template但我知道数据没有模板化。我曾经想过send_file或者url_for是对的,但是我无法让它们发挥作用。与此同时,我正在打开文件,阅读内容,并Response使用适当的mimetype来装配:import os.pathfrom flask import Flask, Responseapp = Flask(__name__)app.config.from_object(__name__)def root_dir():  # pragma: no cover

return os.path.abspath(os.path.dirname(__file__))def get_file(filename):  # pragma: no cover

try:

src = os.path.join(root_dir(), filename)

# Figure out how flask returns static files

# Tried:

# - render_template

# - send_file

# This should not be so non-obvious

return open(src).read()

except IOError as exc:

return str(exc)@app.route('/', methods=['GET'])def metrics():  # pragma: no cover

content = get_file('jenkins_analytics.html')

return Response(content, mimetype="text/html")@app.route('/', defaults={'path': ''})@app.route('/')def get_resource(path):

# pragma: no cover

mimetypes = {

".css": "text/css",

".html": "text/html",

".js": "application/javascript",

}

complete_path = os.path.join(root_dir(), path)

ext = os.path.splitext(path)[1]

mimetype = mimetypes.get(ext, "text/html")

content = get_file(complete_path)

return Response(content, mimetype=mimetype)if __name__ == '__main__':  # pragma: no cover

app.run(port=80)

有人想为此提供代码示例或网址吗?我知道这很简单。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值