我不断收到此错误:“jinja2.exceptions.TemplateNotFound:index.html”

时间:2021-05-17 21:16:52

标签: python

我试图将 index.html 文件保存在模板文件夹中,但它仍然有效。任何帮助将不胜感激。这是我的代码:我正在使用 sypder。

#importing neccessary libs

import numpy as np
from flask import Flask,request,render_template
from flask_cors import CORS
import os
import joblib
import pickle
import flask
import newspaper
from newspaper import Article
import urllib
import nltk
nltk.download('punkt')

#loading flash and assigning the model variable

app= Flask(__name__)
CORS(app)
app=flask.Flask(__name__,template_folder='templates')

 #handle
with open('model.pk1','rb') as handle:
model= pickle.load(handle)
@app.route('/')

定义主(): return render_template('templates/index.html')

#receiving the input url from the user and using web scrapping to 
extract th news content

@app.route('/predict',methods=['GET','POST'])
def predict():
    url=request.get_data(as_text=True)[5:]
    url=urllib.parse.unquote(url)
    article=Article(str(url))
    article.download()
    article.parse()
    article.nlp()
    news=article.summary

    #passing the news article to the model and returning whether it 
    is Fake or Real

    pred=model.predict([news])
    return render_template('index.html', prediction_text='The news 
     is "{}"'.format(pred[0]))
if __name__=="__main__":
    port=int(os.environ.get('PORT',5000))
    app.run(port=port,debug=True, use_reloader=False)

1 个答案:

答案 0 :(得分:0)

我不确定您的项目结构如何,但可能有两个原因:

  1. 这可以改变:

    print("distance:", d[min_idx])
    
    distance: [2.4721]
    

    进入:

    app= Flask(__name__)    
    CORS(app)    
    app=flask.Flask(__name__,template_folder='templates')
    

    并且由于您将模板文件夹保护为 app= Flask(__name__, template_folder='templates') CORS(app) ,因此 templates 应该更改为 return render_template('templates/index.html')。 否则,您将呈现 return render_template('index.html')

  2. 另一个原因可能是路径。 既然是相对路径,想一想是否可以是templates/templates/index.html../templates