【发布时间】:2018-11-18 21:43:39
【问题描述】:
我正在设计一个允许用户上传 .xls 文件的 Web 应用程序。上传时,应保存文件,转换为 .csv 文件,然后文件中包含的数据将通过 python 导入脚本导入。
所有用于导入和转换数据的功能都可以在 shell 中完全发挥作用,但是当通过 localhost 进行测试时,文件会转换为 .csv 并保存,但没有任何脚本在新文件上运行。
来自views.py:
#for uploading data on the dashboard
def file_upload(request):
if request.method == 'POST':
save_path = os.path.join(str(settings.MEDIA_ROOT), 'uploads', str(request.FILES['file']))
try:
validate_file_extension(request.FILES['file'])
path = default_storage.save(save_path, request.FILES['file'])
data = xls_to_csv(save_path, str(settings.MEDIA_ROOT))
create_athlete(data, filename)
create_phase(data)
create_health_report(data)
create_workout_report(data)
except:
return redirect('polar:dashboard')
return redirect('polar:dashboard')
来自 importscript.py
def xls_to_csv(file_name, save_path):
#Formats into pandas dataframe.
formatted_dataframe = pd.read_excel(file_name, index_col=None)
#Converts the formatted into a csv file and save it.
file_name = file_name.replace('.xls', '.csv')
new_file = formatted_dataframe.to_csv(file_name))
module_dir = os.path.dirname(settings.BASE_DIR)
file_path = os.path.join(module_dir, 'uploads', file_name)
sample_data = open(file_name, 'r')
unfiltered_data = sample_data.readlines()
data = unfiltered_data[1:]
return data
好像 Django 正在阻止打开和读取新创建的 .csv 文件。任何解决此问题的提示将不胜感激!
【问题讨论】:
-
你当前的代码是什么?
标签: python django csv web file-upload