Flask应用中使用Pandas读取CSV文件报错问题
Flask读取CSV文件触发内部服务器错误的解决方案
核心问题:错误的文件路径
你代码里写的/static/filename.csv是系统根目录下的路径,并非Flask项目内部的static文件夹路径,这会导致pandas找不到文件,直接抛出异常引发500错误。
修正路径的两种方法
利用
app.root_path拼接项目内路径
修改读取CSV的代码:from app import app from flask import request import pandas as pd import os # 新增导入 @app.route('/hello', methods=['GET', 'POST']) def helloIndex(): # 拼接正确的文件路径 csv_path = os.path.join(app.root_path, 'static', 'filename.csv') df = pd.read_csv(csv_path) # 后续逻辑保持不变 if request.method == 'POST': output2 = '<b> output data here </b>' return output2 return ''' <form method="POST"> < HTML here for input data would go here > </form> '''在视图函数中使用
current_app(适合模块化项目)from app import app from flask import request, current_app # 新增current_app导入 import pandas as pd import os @app.route('/hello', methods=['GET', 'POST']) def helloIndex(): csv_path = os.path.join(current_app.root_path, 'static', 'filename.csv') df = pd.read_csv(csv_path) # 后续逻辑不变
其他优化建议
- 清理冗余代码:删除
from flask import Flask,因为你已经从app模块导入了Flask实例app,重复导入无意义。 - 开启调试模式定位问题:在启动脚本中添加调试模式,这样遇到错误时会显示详细的异常信息,方便排查:
if __name__ == '__main__': app.run(debug=True) - 验证文件存在性与权限:确认
static/filename.csv确实存在,且运行Flask的用户拥有该文件的读取权限。可以在项目根目录执行以下命令检查:ls static/filename.csv
内容的提问来源于stack exchange,提问作者osocode
相关产品推荐
相关产品推荐

