无法使用Django和Python将csv文件保存到文件夹
问题描述:
我试图将一些.csv
文件保存到文件夹中,但使用Python和Django抛出下面的错误。我在下面解释我的错误。无法使用Django和Python将csv文件保存到文件夹
错误:
Exception Type: NameError
Exception Value:
global name 'filename' is not defined
我解释下面我的代码。
report = Reactor.objects.all()
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename='+str(uuid.uuid4())+'.csv'
writer = csv.writer(response)
writer.writerow(['Name', 'Status', 'Date'])
for rec in report:
if rec.status == 1:
status = 'Start'
if rec.status == 0:
status = 'Stop'
if rec.status == 2:
status = 'Suspend'
writer.writerow([rec.rname, status, rec.date])
open(settings.FILE_PATH+filename,'w')
return response
settings.py:
FILE_PATH = os.path.join(BASE_DIR, '/upload/')
在这里,我拧DB值到.CSV
文件并下载。在同一时间,我需要将该下载的文件保存到upload
文件夹中,但得到这些错误。
答
这正是错误告诉你的。您还没有定义filename
任何地方,但在被称之为open(settings.FILE_PATH+filename,'w')
尝试:
filename = str(uuid.uuid4()) + '.csv'
response['Content-Disposition'] = 'attachment; filename=' + filename
相关,但不是你所看到的问题,什么是开放写入文件的点,但从不向它写任何东西?
'open(settings.FILE_PATH + filename,'w')'这里是什么'filename'? – bhansa
你为什么在你回来之前打开文件? –