烧瓶上出现错误404

时间:2018-07-13 17:35:25

标签: python flask http-status-code-404

当我运行127.0.0.1:5000上托管的server.py时,它将生成文章列表

@app.route("/")
def articles():
    """Show a list of article titles"""
    return render_template('articles.html', my_list= Alist)

上面的代码生成文章列表,当我运行127.0.0.1:5000时,该列表运行正常。

@app.route("/article/<topic>/<filename>")
def article(topic,filename):
    """
    Show an article with relative path filename. Assumes the BBC structure of
    topic/filename.txt so our URLs follow that.
    """
    for art in articles_table:
        if art[0]== "%s/%s" %(topic, filename):
            title_str = art[1]
            text_list = art[2].split('\n')
            text_list = [t.lower() for t in text_list if len(t) >= 1]
            rec = recommended(art[0], articles_table, 5)
            break

   return render_template('article.html', title=title_str, text=text_list, 
fiveA= rec)

但是,每当我单击任何文章时,它都会重定向到http://127.0.0.1:5000/article/data/bbc/business/003.txt 并生成错误404,但文件位于本地目录中的特定路径 我相信错误在于第二个代码段。 我是保温瓶的初学者,所以我对要做的事情很困惑。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

如果我正确理解,您正在尝试抓住topicfilename的路线。问题是您尝试访问的URL与您定义的路由不匹配。

您有2个选择:

  • 更改链接,使URL为http://127.0.0.1:5000/article/business/003.txt。这样,您就可以保持与当前@app.route("/article/<topic>/<filename>")相同的路线。这里topic的值为"business",而filename的值为"003.txt"
  • 或者您可以保留链接,以使URL保持不变(http://127.0.0.1:5000/article/data/bbc/business/003.txt),并且可以将路由更改为如下形式:@app.route("/article/data/bbc/<topic>/<filename>")。同样,topic的值为"business",而filename的值为"003.txt"

您可以找到有关路线here

的更多信息