为什么即使链接在服务器上,我也会收到“404 Not Found”错误?

时间:2014-02-16 05:54:11

标签: python templates flask rendering

我正在使用Flask在PythonAnywhere上运行一个简单的测试网站。当我运行脚本时,初始站点(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>

1 个答案:

答案 0 :(得分:3)

您需要为注册网址创建另一条路线,因此您的主网址代码需要为“/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()

如果您希望自己的网址更加清晰,可以在Python中执行以下操作:

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

并更改您的链接代码以匹配。

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

主要的Flask文档在其快速入门指南中对路线进行了很好的概述:http://flask.pocoo.org/docs/quickstart/