Flask serves static html pages

牧云@^-^@ 提交于 2020-05-17 13:00:07

问题


I am implementing a web app by Flask framework. This web app is about to server static html pages whose structure is like java doc.

codes:

from flask import Flask, send_from_directory,url_for

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

@app.route("/report")
def view_report():
    url_for('static', filename='report/flexmonkey/html/')
    return send_from_directory('static', 'report/flexmonkey/html/index.html')

if __name__ == "__main__":
    app.run(debug=True)

the index.html:

<html xmlns:lxslt="http://xml.apache.org/xslt" xmlns:stringutils="xalan://org.apache.tools.ant.util.StringUtils">
<head>
<META http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Unit Test Results.</title>
</head>
<frameset cols="20%,80%">
<frameset rows="30%,70%">
<frame src="overview-frame.html" name="packageListFrame">
<frame src="allclasses-frame.html" name="classListFrame">
</frameset>
<frame src="overview-summary.html" name="classFrame">
<noframes>
<h2>Frame Alert</h2>
<p>
                This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
            </p>
</noframes>
</frameset>
</html>

the directory structure:

~/workspace/testReport/static/report/flexmonkey/html $ ls
allclasses-frame.html  alltests-fails.html  automation  overview-frame.html    stylesheet.css
alltests-errors.html   all-tests.html       index.html  overview-summary.html

error message:

127.0.0.1 - - [13/Sep/2012 11:01:25] "GET /overview-frame.html HTTP/1.1" 404 -
127.0.0.1 - - [13/Sep/2012 11:01:25] "GET /allclasses-frame.html HTTP/1.1" 404 -
127.0.0.1 - - [13/Sep/2012 11:01:25] "GET /overview-summary.html HTTP/1.1" 404 -

回答1:


You don't need to use Flask if all you want to do is serve static files. From the directory where you have the html files, type python -m SimpleHTTPServer then browse http://localhost:8000/

For Python 3, type python -m http.server instead.




回答2:


by default flask will serve anything in /static folder as static files, unless redefined as app = Flask(__name__, static_url_path='some_other_folder'). So put all your html files under static folder and run a simple flask server:

from flask import Flask, send_from_directory

app = Flask(__name__)

@app.route('/')
def root():
    return send_from_directory('','index.html') # serve root index.html

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8080, debug=True)

then visit http://localhost:8080/static/report/flexmonkey/html/overview-summary.html and you should get it.



来源:https://stackoverflow.com/questions/12412435/flask-serves-static-html-pages

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!