Flask:无法访问View(在服务器上找不到URL)

时间:2015-07-14 20:27:33

标签: python flask

我正在尝试为Flask应用添加另一个视图。我的app / views.py看起来像这样:

from flask import render_template
from app import app
from helpfulFunctions import *

def getRankingList():
    allPlayers = main()
    return allPlayers

def displayLimitedNumberOfPlayers(limit):
    allPlayers = main()
    allPlayers[0] = limitPlayers(allPlayers[0], limit)
    allPlayers[1] = limitPlayers(allPlayers[1], limit)
    return allPlayers

@app.route("/")
@app.route("/index")
def index():
    rankingList = getRankingList()
    return render_template('index.html', title='Home', rankingList = rankingList)

@app.route("/top100")
def top100():
    rankingList = displayLimitedNumberOfPlayers(100)
    return render_template('top100.html', rankingList = rankingList)

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

我试图模仿Miguel Grinberg教程如何定义//index的路由。我在模板文件夹中创建了一个名为top100.html的视图,其中“index.html”文件也存在。但是,当我尝试点击localhost:5000/top100.html时,我得到:

Not Found

The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.

所以看起来Flask并不认为URL有与之相关的视图......但我不确定原因。

有什么想法吗?

感谢您的帮助, bclayman

2 个答案:

答案 0 :(得分:7)

您的代码中没有查看top100.html。您可以执行其中任何一项

localhost:5000/top100

OR

@app.route("/top100")更改为@app.route("/top100.html")

答案 1 :(得分:2)

路由(或网址)在var obj3 = $.extend(true, {}, obj1, obj2); 定义中指定,因此您应该访问@app.route()

render_template localhost:5000/top100仅在Flask内部引用,以指定使用的模板。实际上,这个页面可以被命名为任何东西,并且不必以与路径类似的方式命名...它只需匹配用于构建在该URL上提供的页面的模板文件。