【问题标题】:Everytime restart required for flask to work [duplicate]烧瓶工作需要每次重新启动[重复]
【发布时间】:2018-07-30 07:32:02
【问题描述】:

我有一个烧瓶应用程序,它将读取一些数据帧并在前端显示一些输出。我有两个routes。一个将接受user input 并发送到第二条路线。第二条路线利用此输入并处理一些dataframe 并提供一些输出。问题是,如果再次进入用户输入页面并且我尝试提交另一个input,它会给我page not working 错误。 是因为内存问题吗?如果我重新启动我的服务器,然后我重复一次(每次我需要重新启动)。

from flask import flash, redirect, render_template, url_for, request, jsonify
import math
import os
import glob
import pandas as pd
from . import fa
from database import connection
UPLOAD_DIRECTORY = './uploads'
if not os.path.exists(UPLOAD_DIRECTORY):
    os.makedirs(UPLOAD_DIRECTORY)

@fa.route('/fc', methods=['GET', 'POST'])
def index():
    return render_template('fc.html',flag=0)

@fa.route('/fc/s', methods=['GET', 'POST'])
def start():
    if request.method == 'POST':
            material_number = request.form['ma']
            path = UPLOAD_DIRECTORY
            extension = 'xlsx'
            os.chdir(path)
            result = [i for i in glob.glob('*.{}'.format(extension))]
            allFiles = result
            frame = pd.DataFrame()
            list_ = []
            for file_ in allFiles:
                df = pd.read_excel(file_)
                list_.append(df)
            frame = pd.concat(list_)
            frame = frame.reset_index(drop=True)
            df1 = frame[frame['Ma'].str.contains(ma,regex=True)]
            pr = df1['Pr'].unique().tolist() 
            pro = pd.read_excel(r'~pathhiddn~\dtrvsproj.xlsx')
            return render_template('fc.html',flag=1,ma=ma,prs=pr)
    return redirect(url_for('fa.index'))

【问题讨论】:

  • 调试你的代码,检查哪一行,它停止工作,比如在你对数据框做某事之前/之后,以及在返回之前放置打印语句,并确定它卡在哪里。
  • 我们可以看看你的日志中的错误是什么吗?
  • 我的理解是for循环部分有问题..直到它运行良好
  • 当我从 path = UPLOAD_DIRECTORYpro = pd.read_excel(r'~pathhiddn~\dtrvsproj.xlsx') 删除所有代码时,它工作正常
  • df = pd.read_excel(file_) list_.append(df) 这些行导致问题.....

标签: python pandas dataframe flask flask-restful


【解决方案1】:
os.chdir(path)

这是导致问题的原因。我删除了它并将df = pd.read_excel(file_) 替换为df = pd.read_excel('./uploads/data/'+file_)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    • 2022-09-28
    • 2021-07-19
    • 2019-01-12
    • 1970-01-01
    • 2021-12-26
    • 2012-03-06
    相关资源
    最近更新 更多