Python 将文件导出到csv,但无法在django中显示文件
所以我尝试将查询结果导出到csv文件中,但当我这样做时,它会显示成功,但我看不到文件在哪里,或者文件正在浏览器中下载,我已经搜索了文件,但我在任何地方都找不到,代码如下 html中的AJAXPython 将文件导出到csv,但无法在django中显示文件,python,django,Python,Django,所以我尝试将查询结果导出到csv文件中,但当我这样做时,它会显示成功,但我看不到文件在哪里,或者文件正在浏览器中下载,我已经搜索了文件,但我在任何地方都找不到,代码如下 html中的AJAX <script> $(document).ready(function() { $("#export").click(function () { var urls = "{% url 'polls:export' %}"; var n
<script>
$(document).ready(function() {
$("#export").click(function () {
var urls = "{% url 'polls:export' %}";
var name = $('#columnselect').val();
var table = $('#dataselect').val();
var column = $('#conditionselect').val();
var operator = $('#operator').val();
var condition = $('#parameter').val();
$.ajax({
url: urls,
data: {
'name' : name,
'table': table,
'column' : column,
'operator' : operator,
'condition' : condition
},
success: function(data) {
alert("success");
},
error: function(data)
{
alert("error occured");
}
});
});
});
</script>
views.py
def export(request):
import cx_Oracle
data_name = request.GET.get('name',1)
table_name = request.GET.get('table',1)
column_name = request.GET.get('column',1)
operator = request.GET.get('operator',1)
condition = request.GET.get('condition',1)
dsn_tns = cx_Oracle.makedsn('IP', 'PORT', sid='')
conn = cx_Oracle.connect(user=r'', password='', dsn=dsn_tns)
c = conn.cursor()
c.execute("select "+data_name+" from "+table_name+" where "+column_name+operator+"'"+condition+"'")
c.rowfactory = makeDictFactory(c)
columnalldata = []
for rowDict in c:
columnalldata.append(rowDict[data_name])
context = {
'obj4' : columnalldata
}
response = HttpResponse(content_type ='text/csv')
response['Content-Disposition'] = 'attachment;filename="output.csv"'
writer = csv.writer(response)
writer.writerow(context)
print(response)
return response
有人能找出我错在哪里吗?我也已经遵循了文档
感谢您的帮助在控制台/终端中运行时,您没有收到错误消息吗?没有,它工作正常。此代码尝试将数据发送回客户端,但不会将其保存在磁盘上。但我会写入行列表,而不是字典。知道如何将其保存在磁盘@furasit上吗?它会打开磁盘上的本地文件进行写入(“w”),然后写入该文件。若文件不存在,那个么它将创建一个新文件。如果文件存在,则会删除以前的内容。
def export(request):
import cx_Oracle
data_name = request.GET.get('name',1)
table_name = request.GET.get('table',1)
column_name = request.GET.get('column',1)
operator = request.GET.get('operator',1)
condition = request.GET.get('condition',1)
dsn_tns = cx_Oracle.makedsn('IP', 'PORT', sid='')
conn = cx_Oracle.connect(user=r'', password='', dsn=dsn_tns)
c = conn.cursor()
c.execute("select "+data_name+" from "+table_name+" where "+column_name+operator+"'"+condition+"'")
c.rowfactory = makeDictFactory(c)
columnalldata = []
for rowDict in c:
columnalldata.append(rowDict[data_name])
context = {
'obj4' : columnalldata
}
response = HttpResponse(content_type ='text/csv')
response['Content-Disposition'] = 'attachment;filename="output.csv"'
writer = csv.writer(response)
writer.writerow(context)
print(response)
return response