У меня есть требование, чтобы иметь возможность загружать сведения о посетителях из таблицы SQL в файл CSV.
Приведенный ниже код отлично работает для моего локального развертывания, создавая файл .csv в / app / staticдиректория, которую оператор Return загружает на мой рабочий стол.
При загрузке в Heroku тот же код завершается с ошибкой в последней строке (Return), указывая:
'FileNotFoundError: [Errno 2] No such file or directory: '/app/app/static/users1001.csv'
Это говорит о том, что он создал файл всервер, но ищет в неправильном месте (дополнительный «/ приложение»). Тем не менее, нигде не было создано ни одного файла (я проверял с помощью Heroku Run Bash). Код:
name = 'attendees' + str(name) # name = 1001 in this example
f = open('%s.csv' % name, 'w')
out = csv.writer(f)
out.writerow([ 'Date','Activity No','Activity', 'User No', 'User Name',\
'Cost','Received','Update Time'\
])
for item in Attendees.query.filter_by(club=current_user.club)\
.order_by(Attendees.activitydate.desc(),Attendees.activityname):
out.writerow([item.activitydate, item.activitynumber,\
item.activityname,item.usernum,\
item.username,item.cost,item.received,item.update_time])
path='static/'+name+'.csv' # this was necessary for the local deployment
# csv writer send to 'static' by default but
# send_file needs it stated explicitly
f.close()
return send_file(path, as_attachment=True)
Поэтому мой вопрос: кто-нибудь знает, где этот файл хранится в Heroku, чтобы я мог завершить загрузку?
Еще одна морщина, которую я не могу объяснить. Если я запускаю это для клуба 1002 (не 1001), код работает и загружает файл accedees1002.csv (это файл, который я создал локально и был загружен в Heroku с помощью GIT). Ниже вы увидите, что этот файл на самом деле находится в / app / static / temp, что действительно сбивает с толку.
From Heroku Run Bash:
~/app/static $ dir
1002.csv clubmanager2020.jpg code39_barcode.svg eds.jpg loading.gif ratings.csv
bwt.jpg clubmanager2020.png dump.csv eetc.jpg out.csv temp
~/app/static $ cd temp
~/app/static/temp $ dir
attendees1002.csv out.csv ratings.csv users1002.csv
Любая помощь с благодарностью