Python 为什么我会得到一个“;“404未找到”;即使链接在服务器上也会出错?

Python 为什么我会得到一个“;“404未找到”;即使链接在服务器上也会出错?,python,templates,flask,rendering,Python,Templates,Flask,Rendering,我正在使用Flask运行一个简单的测试站点。当我运行脚本时,初始站点(index.html)出现了,一切看起来都很好。但是,当我单击任何链接(如signup.html)时,我会得到一个404错误: 未找到 在服务器上找不到请求的URL。 如果您手动输入URL,请检查拼写并重试 但是,HTML文件和index.HTML都位于templates文件夹中。为什么在服务器上找不到它们 以下是运行应用程序的Python代码: from flask import Flask from flask impor

我正在使用Flask运行一个简单的测试站点。当我运行脚本时,初始站点(index.html)出现了,一切看起来都很好。但是,当我单击任何链接(如signup.html)时,我会得到一个404错误:

未找到
在服务器上找不到请求的URL。
如果您手动输入URL,请检查拼写并重试

但是,HTML文件和index.HTML都位于templates文件夹中。为什么在服务器上找不到它们

以下是运行应用程序的Python代码:

from flask import Flask
from flask import render_template

app = Flask(__name__)

@app.route('/')

def runit():
    return render_template('index.html')

if __name__ == '__main__':
    app.run()
下面是index.HTML中包含链接的HTML部分:

<a class="btn btn-lg btn-success" href="signup.html">Sign up</a>

您需要为注册URL创建另一个路由,因此您的主webapp代码需要为“/signup.html”添加一个路由,即

from flask import Flask
from flask import render_template

app = Flask(__name__)

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

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

if __name__ == '__main__':
    app.run()
如果希望URL更干净,可以在Python中执行以下操作:

@app.route('/signup')
def signup():
    return render_template('signup.html')
并更改链接代码以匹配

<a class="btn btn-lg btn-success" href="signup">Sign up</a>


Flask主文档在其快速入门指南中对路线有很好的概述:

当我搜索此内容时,我的浏览器在我不知道的情况下请求了
favicon.ico
。向flask添加404路由解决了该问题。