使用Flask将HTML页面加载到HTML框架中

时间:2019-01-17 17:06:22

标签: python html flask

从标题开始,我正在尝试使用Flask将HTML页面加载到HTML框架中。

当我在Firefox选项卡上打开frameset.html页面时(用{.src}}替换为index.html),框架集的行为正确。 但是,每当我运行python代码时,加载的HTML页面都会在帧之间正确划分,但是在任何页面中都没有找到index.html页面的踪迹。


main.py

from flask import Flask, render_template, request

app = Flask(__name__)
page = 'index.html'

@app.route('/')
def home():
    return render_template('frameset.html', src=page)

app.run()

frameset.html

<html>
<frameset rows="10%,80%,*">
    <frame src=''>
        <frameset cols='20%,40%,40%'>
            <frame src=''>
                <frame src='{{src}}'>
                    <frame src='' name="output">
        </frameset>
        <frame src=''>
</frameset>

</html>

index.html

<html>

<head>
    <title>HOME</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" media="screen">
    <style type="text/css">
        .container {
            max-width: 500px;
            padding-top: 100px;
        }
    </style>
</head>

<body>
    <div class="container">
        <a href="genostats.html" target="output">GENO stats</a>

</html>

如何解决此问题?我在此处编写的代码仅用于测试框架集的功能。

1 个答案:

答案 0 :(得分:0)

@app.route('index.html')处创建另一条路线,以渲染index.html模板,确保index.html文件位于模板文件夹中

像这样:

@app.route('/index.html')
def index():
    return render_template('index.html')

资源需要从烧瓶中的templates folderstatic folder提供,您不能拥有资源并自动提供它,因为这将是非常不安全的,因为任何用户都将只需更改链接即可访问整个服务器。