将数据导出为csv在django中不起作用(Export data as csv is not working in django)
如果点击打印按钮,我正在尝试导出csv文件。
问题是生成的文件不是.csv文件
但是,文件内容是检索我需要的值(我通过手动更改文件类型进行检查,因此我附加了结果)。 任何人都可以告诉我错误吗? 或者它与任何需求插件有关?
任何和所有的帮助,非常感谢!
import csv query_data = search_data(request,request.user.userid) if (request.method == 'POST'): if 'csvexport' in request.POST: data = csv_export(query_data) return HttpResponse (data,content_type='text/csv')
-
def csv_export (data): response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename="file.csv"' writer = csv.writer(response) response.write('\ufeff'.encode('utf8')) writer.writerow([,'valData' ,'value1' ,'value2']) for rec in data: writer.writerow([rec['valData'] ,rec['value1'] ,rec['value2']]) return response-
def search_data(request,userid): cursor = connection.cursor() query = str("SELECT\n" " valData,\n" " MG0.valData as value1,\n" " MG1.valData as value2,\n" " FROM\n" " T_USER AS TU\n" " LEFT JOIN M_GENERAL AS MG0\n" " ON MG0.Cd='001'\n" " LEFT JOIN M_GENERAL AS MG1\n" " ON MG1.Cd='001'\n") cursor.execute(query) row = dictfetchall(cursor,) return rowI'm currently trying to export a csv file if the print button is clicked.
The problem is the file which generated is not .csv file
However, the file content is retrieve the values which I need (I checked by changing type of file manually. Hereby I attached the result). Could anyone show me the mistakes? Or is it related to any requirement plugin?
Any and all help is greatly appreciated!
import csv query_data = search_data(request,request.user.userid) if (request.method == 'POST'): if 'csvexport' in request.POST: data = csv_export(query_data) return HttpResponse (data,content_type='text/csv')--
def csv_export (data): response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename="file.csv"' writer = csv.writer(response) response.write('\ufeff'.encode('utf8')) writer.writerow([,'valData' ,'value1' ,'value2']) for rec in data: writer.writerow([rec['valData'] ,rec['value1'] ,rec['value2']]) return response--
def search_data(request,userid): cursor = connection.cursor() query = str("SELECT\n" " valData,\n" " MG0.valData as value1,\n" " MG1.valData as value2,\n" " FROM\n" " T_USER AS TU\n" " LEFT JOIN M_GENERAL AS MG0\n" " ON MG0.Cd='001'\n" " LEFT JOIN M_GENERAL AS MG1\n" " ON MG1.Cd='001'\n") cursor.execute(query) row = dictfetchall(cursor,) return row最满意答案
尝试这个,
if (request.method == 'POST'): if 'csvexport' in request.POST: return csv_export(query_data)Try this,
if (request.method == 'POST'): if 'csvexport' in request.POST: return csv_export(query_data)更多推荐
发布评论