Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将文件导出到csv,但无法在django中显示文件_Python_Django - Fatal编程技术网

Python 将文件导出到csv,但无法在django中显示文件

Python 将文件导出到csv,但无法在django中显示文件,python,django,Python,Django,所以我尝试将查询结果导出到csv文件中,但当我这样做时,它会显示成功,但我看不到文件在哪里,或者文件正在浏览器中下载,我已经搜索了文件,但我在任何地方都找不到,代码如下 html中的AJAX <script> $(document).ready(function() { $("#export").click(function () { var urls = "{% url 'polls:export' %}"; var n

所以我尝试将查询结果导出到csv文件中,但当我这样做时,它会显示成功,但我看不到文件在哪里,或者文件正在浏览器中下载,我已经搜索了文件,但我在任何地方都找不到,代码如下

html中的AJAX

 <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