【问题标题】:Store and read csv file django存储和读取 csv 文件 django
【发布时间】:2017-09-08 18:04:36
【问题描述】:

当用户上传文件时,我希望它存储文件,读取前 10 行并将前 10 行发送回页面。我不确定如何在视图或客户端执行此操作。

def UploadTest(request):
    if request.POST and request.FILES:
        csvfile = request.FILES['csv_file']
        dialect = csv.Sniffer().sniff(codecs.EncodedFile(csvfile, "utf-8").read(1024))
        csvfile.open()
        reader = csv.reader(codecs.EncodedFile(csvfile, "utf-8"), delimiter=',', dialect=dialect)
    return render(request, 'index.html', {"form": reader} )

这就是我现在的views.py 中的内容。但我不希望它呈现新页面。

【问题讨论】:

  • 如果您不想呈现页面,请改用 Ajax。使您的模板进行 ajax 调用,后端将返回前 10 行的 JSON。使用 JSON 结果并根据需要对其进行格式化,并使用 JS 将其显示给用户。
  • 我明白你在说什么,但我仍然对如何做到这一点感到困惑

标签: django forms file-upload django-forms django-uploads


【解决方案1】:

使用FormData从表单中获取文件数据,并发送Ajax调用。

类似于以下内容:

function upload(event) {
    event.preventDefault();
    var myFile = new FormData($('form').get(0));

    $.ajax({
        url: $(this).attr('action'),
        type: $(this).attr('method'),
        data: myFile,
        cache: false,
        processData: false,
        contentType: false,
        success: function(data) {
            # your logic here
        }
    });
    return false;
}

$(function() {
        $('myForm').submit(upload);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-15
    • 2020-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多