Flask,页面不存在

2024-06-01 01:04:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经部署了我的模型。但是当我点击submit按钮时,我并没有看到预测,而是看到一个错误,页面不存在。请帮帮我` 这是app.py代码

movies = pd.read_csv('movies.csv')
app = flask.Flask(__name__, template_folder='templates')
count = CountVectorizer()
count_matrix = count.fit_transform(movies['All_Words'])
cosine_sim = cosine_similarity(count_matrix, count_matrix)

indices = pd.Series(movies.index)
all_titles = [movies['Title'][i] for i in range(len(movies['Title']))]

def recommendations(Title, cosine_sim = cosine_sim):
    recommended_movies = []
    idx = indices[indices == Title].index[0]
    score_series = pd.Series(cosine_sim[idx]).sort_values(ascending = False)
    top_10_indexes = list(score_series.iloc[1:11].index)
    # populating the list with the titles of the best 10 matching movies
    for i in top_10_indexes:
        recommended_movies.append(list(movies.index)[i])
        
    return recommended_movies

def get_recommendations(Title):
    cosine_sim = cosine_similarity(count_matrix, count_matrix)
    idx = indices[Title]
    sim_scores = list(enumerate(cosine_sim[idx]))
    sim_scores = sorted(sim_scores, key=lambda x: x[1], reverse=True)
    sim_scores = sim_scores[1:11]
    movie_indices = [i[0] for i in sim_scores]
    tit = movies['Title'].iloc[movie_indices]
    dat = movies['All_Words'].iloc[movie_indices]
    return_df = pd.DataFrame(columns=['Title','All_Words'])
    return_df['Title'] = tit
    return_df['All_Words'] = dat
    return return_df   
  
@app.route('/', methods=['GET', 'POST'])

def main():
    if flask.request.method == 'GET':
        return(flask.render_template('mainpage.html'))
    if flask.request.method == 'POST':
        m_name = flask.request.form['movie_name']
        m_name = m_name.title()
        #if m_name in all_titles:
            #return(flask.render_template('negative.html',name=m_name))
        
        result_final = recommendations(m_name)
        names = []
        names.append(result_final)
        return flask.render_template('positive.html',movie_names=names,search_name=m_name)

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

这是mainpage.html

!-- Demo -->
    <div class="movie">
        <h2 style="color:black;">Movie Recommendation System</h2>
        <form action="{{ url_for('main') }}" method="POST">
            <input type="text" id="movie_name" name="movie_name" placeholder="Enter movie name" required />
            <input type="submit" id="submission_button" value="Submit"/>
        </form>

这是positive.html

    <div class="movie">
        <h2><b>RECOMMENDATIONS</b></h2>
        <p>Showing results for: {{ search_name }}</p>
        <table class="movie_table" align="center">
            <tr>
                <th>Movie Title</th>

            </tr>
            <tbody class="table_body">
                <tr>
                    <td>{{ movie_names[0] }}</td>
              
                </tr>
                <tr>
                    <td>{{ movie_names[1] }}</td>
                  
                </tr>
                <tr>
                    <td>{{ movie_names[2] }}</td>
                   
                </tr>
                <tr>
                    <td>{{ movie_names[3] }}</td>
                    
                </tr>
                <tr>
                    <td>{{ movie_names[4] }}</td>
                   
                </tr>
                <tr>
                    <td>{{ movie_names[5] }}</td>
                   
                </tr>
                <tr>
                    <td>{{ movie_names[6] }}</td>
                  
                </tr>
                <tr>
                    <td>{{ movie_names[7] }}</td>
                   
                </tr>
                <tr>
                    <td>{{ movie_names[8] }}</td>
                   
                </tr>
                <tr>
                    <td>{{ movie_names[9] }}</td>
                    
                </tr>
            </tbody>
        </table>

请帮帮我。单击“提交”时,我希望我的建议以表格形式显示


Tags: nameflaskreturnnamestitlecountsimmovies