Flask URL 路径不工作

Flask URL path not working

我开始创建一个非常简单的 Flask 应用程序,就像我以前所做的那样,但我收到了一个 404 错误,这让我完全无法理解。我的目录结构如下:

Site/
----static/
--------css/
------------css files
--------img/
------------image files
----templates/
--------contact.html
--------index.html
app.py

我遇到的问题是 index.html 页面中有一个按钮可以将您带到 contact.html 页面。

<nav class="main-nav">
        <ul>
            <li>
                <a href="#">Home</a>
            </li>
            <li>
                <a href="#">About Me</a>
            </li>
            <li>
                <a href="#">Resume</a>
            </li>
            <li>
                <a href="contact.html">Contact</a>
            </li>
        </ul>
    </nav>

此按钮会将您带到联系页面,该页面与我在 VSCode 中使用 Live Server 时完全一样。问题是当我尝试在 Flask 本地服务器中访问此页面时。这里是 app.py:

from flask import Flask, render_template

app = Flask (__name__)
app.debug = True

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

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



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

我一直遵循这种路由到页面的基本语法,直到现在它一直有效,但我不明白为什么会出现 404 错误。我已经尝试在 app.route 中留下尾随 space 并清除我的浏览器缓存以防出现重定向错误但仍然没有。当我在 Live Server 和 Flask 中打开联系页面并将它们并排放置时,它们具有完全相同的 url 只是在不同的本地主机端口上。我错过了什么?

您不需要在 href 路径中提供文件名:

<a href="/contact">Contact</a>

您的路线名为 contact,但您的 link 是去 contact.html。这些名称必须相同。

尝试以下方法之一:

@app.route('/contact.html')

<a href="contact">Contact</a>

正如别处所指出的,推荐的用法是 url_for():

<a href={{url_for('contact')}}>Contact</a>

不要使用contact.html仅路由名称如下。

<a href="{{ url_for('app.contact') }}">Contact</a>

意思...

<a href=" {{ url_for('blueprint_name.route_name') }}">Route</a>