我正在调用一个Python函数,该函数使用XlsxWriter在我的Django应用程序中通过Ajax将一些数据写入excel。我使用jQuery来绑定我的一个按钮的onclick方法来调用这个函数。但是,当我调用它时,Django给出了一个错误,指出'exportHistoExcel未定义'。这让我很困惑,因为同一脚本中的所有其他函数都被识别并正在运行,但是由于某种原因没有定义一个函数。谁能帮助我?
这是我的python脚本:
from xlsxwriter.workbook import Workbook
def exportHistoExcel(SE_filelocation, VTfile_location, filename):
print('anything?')
#new getFiringRates return statement:
# if generating_excel_file: return [bins, spikeanglebins, headanglebins, times, firingrates]
# else: return True
#new getFiringRates parameter:
# generating_excel_file = False
data = getFiringRates(SE_filelocation, VTfile_location, generating_excel_file = True)
print(data)
workbook = Workbook(filename)
worksheet = workbook.add_worksheet()
worksheet.write('A1', 'Bin (degrees)')
worksheet.write('B1', '# of Spikes')
worksheet.write('C1', '# of Samples')
worksheet.write('D1', 'Time (sec)')
worksheet.write('E1', 'Firing Rate')
worksheet.write_column('A2', data[0])
worksheet.write_column('B2', data[1])
worksheet.write_column('C2', data[2])
worksheet.write_column('D2', data[3])
worksheet.write_column('E2', data[4])
worksheet.write('A62', 360); worksheet.write('B62', '=$B$2')
worksheet.write('C62', '=$C$2'); worksheet.write('D62', '=$D$2'); worksheet.write('E62', '=$E$2')
histo = workbook.add_chart({'type': 'line'})
histo.set_title({'name': 'Firing Rates'})
histo.set_x_axis({'name': 'Bin (degrees)'})
histo.set_y_axis({'name': 'Firing rate (sec^-1)'})
histo.add_series({'values': '=Sheet1!$E$2:$E$61',
'line': {'color': 'black'},
'categories': '=Sheet1!$A$2:$A$61'})
histo.set_legend({'delete_series': [0]})
worksheet.insert_chart('F2', histo)
workbook.close()
这是我的ajax.py文件:
from django.utils import simplejson
from dajaxice.decorators import dajaxice_register
from hipercic.apps.NeuroCiC import models
from django.core.files import storage
import file_analysis
import sys
@dajaxice_register
def export_excel_file(request, id):
print 'TRIAL ID', id
try:
trial = models.Trial.objects.get(pk=id)
except:
'Could not find trial.'
else:
print 'Found Trial'
print('~/hipercic/apps/NeuroCiC/uploads/' + trial.spikes_file.url)
SE_loc = '~/hipercic/apps/NeuroCiC/uploads/' + trial.spikes_file.url
VT_loc = '~/hipercic/apps/NeuroCiC/uploads/' + trial.led_file.url
print(SE_loc)
print(VT_loc)
exportHistoExcel(SE_loc, VT_loc, "demo.xlsx")
return
ajax中的print语句都打印到终端,但exportHitoExcel中的所有打印语句都没有。为什么不识别我的python函数?
答案 0 :(得分:1)
当我改变
时它起作用了exportHistoExcel(SE_loc, VT_loc, "demo.xlsx")
对此:
return simplejson.dumps({'scatter_data': file_analysis.exportHistoExcel("test.xlsx") })