作者gn00618777 (非常念旧)
看板Python
标题Re: [问题] html 的 frameset
时间Mon Dec 29 23:32:10 2014
※ 引述《Neisseria (Neisseria)》之铭言:
: 其实还是 route 的问题
: 在 HTML 档案里设定的路径,在 Flask app 里必需要有对应的 route
: 否则就会跳 404 error (网页不存在)
: 我跟据你的程式,试写了一个可能的 route
: 但是我手头上没有网页可测试,不保证 work
: from flask import Flask, send_from_directory
: app = Flask(__name__)
: @app.route('/report')
: def view_report():
: return app.send_static_file('report/flexmonkey/html/index.html')
: @app.route('/<path:filename>')
: def send_file(filename):
: return send_from_directory('report/flexmonkey/html', filename)
: ※ 引述《gn00618777 (非常念旧)》之铭言:
: : ㄧ个 index.html ,里面有 frameset tag,分成三区块,这三个区块在 index.html
: : 里分别代表其他三份 html,例子如下:
: : <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">
: : 我在 flask 下写一个 script test.py:
: : @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')
: : 所有html都放在 report/flexmonkey/html/ 底下,server 启动 test.py
: : 客户端无法载入其他 html
: : 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
: : 请问这个在 test.py 要怎麽写呢? 谢谢。
感谢 N 大的直接提示,我原来把主要档案档名把它打错了~"~
然後再参照N大的指示做些修改就可以了。感谢!
只是我想请问为什麽要特别分 send_static_file 和 send_from_directory ?
是因为N大以为 index.html 和 其他 htmol 档案分属於不同资料夹?
因为我只要
@app.route("<path:fiolname>")
def show():
return send_from_directory("static/report/flexmonkey/html",filename)
之後在客户端打 index.html 就可以载入所有其他的 html
谢谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.169.54.88
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Python/M.1419867133.A.387.html
1F:推 Neisseria: 都可以啊,看你 route 要怎麽设定,这些只是参考 12/30 07:39