Python 烧瓶罐';t直接指向HTML文件

Python 烧瓶罐';t直接指向HTML文件,python,html,python-3.x,flask,Python,Html,Python 3.x,Flask,所以我有一个用于index.html页面的flask代码。但是,当我点击permission.html等其他链接时,它不会显示permission.html的任何内容,我会得到127.0.0.1---[10/May/2020 08:21:46]“get/permission.html HTTP/1.1”200-。如何重定向到permission.html并显示其内容 我的文件结构 . ├── code.py ├── static │   ├── css │   │   ├── style.css

所以我有一个用于index.html页面的flask代码。但是,当我点击permission.html等其他链接时,它不会显示permission.html的任何内容,我会得到
127.0.0.1---[10/May/2020 08:21:46]“get/permission.html HTTP/1.1”200-
。如何重定向到permission.html并显示其内容

我的文件结构

.
├── code.py
├── static
│   ├── css
│   │   ├── style.css
│   └── pictures
│       └── some_picture.png
└── templates
    ├── index.html
    ├── permission.html
    ├── shell.sh
代码.py

from flask import Flask, url_for
from flask import render_template

app = Flask(__name__)

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

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

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Title</title>
    <link rel="stylesheet" href="/static/css/style.css">
</head>
<body>
    <header>
        <img class="resize" src="/static/pictures/logo.png" alt="logo">
        <nav>
            <ul class="nav-links">
                <li class="active"><a href="./index.html">Home</a></li>
                <li><a href="./permission.html">Permission</a></li>
            </ul>
            <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
            <script type="text/javascript">
                $(document).on('click', 'ul li', function(){
                    $(this).addClass('active').siblings().removeClass('active')
                })
            </script>
        </nav>
    </header>
</body>
</html>

标题
$(文档)。在('click','ul li',function()上{ $(this).addClass('active').sides().removeClass('active')) })
permission.html

{% extends 'index.html' %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Title</title>
    <link rel="stylesheet" href="./css/style.css">
    <style type="text/css">
        body, html
        {
            margin: 0; padding: 0; height: 100%; overflow: hidden;
        }
    </style>
</head>
<body>
    <header>
        <img class="resize" src="../static/pictures/logo.png" alt="logo">
        <nav>
            <ul class="nav-links">
                <li><a href="./index.html">Home</a></li>
                <li class="active"><a href="./permission.html">Permission</a></li>
            </ul>
            <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
            <script type="text/javascript">
                $(document).on('click', 'ul li', function(){
                    $(this).addClass('active').siblings().removeClass('active')
                })
            </script>
        </nav>
    </header>
    <iframe width="100%" height="100%" src="some_url"></iframe>
    <p>HII</p>
</body>
</html>
{%extends'index.html%}
标题
正文,html
{
边距:0;填充:0;高度:100%;溢出:隐藏;
}
$(文档)。在('click','ul li',function()上{ $(this).addClass('active').sides().removeClass('active')) }) HII


在指向其他链接方面需要做哪些更改?并正确显示其内容及其CSS?

您可能最好为这些单独的页面使用单独的路由,如:

@app.route(“/”)
def index():
返回渲染模板('index.html')
@app.route(“/permission”)
def权限():
返回呈现模板('permission.html')

有关链接,请参见下面的精彩评论。

下面的代码告诉flask在请求
/
/permission.html
时呈现
index.html

@app.route(“/”)
@app.route(“/permission.html”)
def index():
返回渲染模板('index.html')
@app.route(/endpoint)
decorator告诉flask在请求
/endpoint
时运行用它修饰的方法。flask然后使用该方法的返回代码进行响应。因此,您需要为
/permission.html
端点创建一个:

从烧瓶导入烧瓶,url\u
从flask导入渲染模板
app=烧瓶(名称)
@应用程序路径(“/”)
def index():
返回渲染模板('index.html')
@app.route(“/permission.html”)
def权限():
返回呈现模板('permission.html')
如果名称=“\uuuuu main\uuuuuuuu”:
app.run()
有关路由规则和
app.route()
的详细信息,请参阅


另外,您可能不希望permission.html中包含
{%extends'index.html%}
,因为这会告诉Jinja(flask template rendered)获取index.html并仅用permission.html的内容替换其中的某些块。您提供了完整的HTML文件,因此无需使用
extends
指令。有关如何使用extends的详细信息,请参见。

好的,这里您将两个路径链接到了同一个文件,即index.html。你可以试试

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

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

您需要创建另一个呈现
permission.html
模板的视图,并将其绑定到URL
/permission.html
。此外,您还需要在索引视图函数中删除权限的绑定URL。如果使用Jinja标记
{{URL\u for('permission')}
在模板中呈现URL,效果会更好。查看“不知何故,我仍然有一个问题”“请使用更新的代码编辑问题”。不知何故,当您单击链接时,它仍然没有显示内容您在运行烧瓶的终端中看到了什么?有什么错误吗?我得到了
127.0.0.1-[10/May/2020 08:44:20]“GET/permission.html HTTP/1.1”404-
我编辑了链接到
{url\u for('permission')}
并且得到了
127.0.0.1-[10/May/2020 08:45:06]“GET/permission HTTP/1.1”200-
Flask没有看到新的路线。您是否偶然在Windows上运行development server?有时,Windows上的autoreload有点不稳定。如果您退出(CTRL+C)并再次运行flask,它是否有效?它仍然无法呈现代码不正确,我现在已经更新了它。此外,您可能还希望删除
{%extends'index.html%}