向用户提供数据的更优雅、更快的方式——Django



我一直在做我的一个项目,在它的一个功能中,我们从数据库中检索数据,并将其写入Blob实例,然后让用户可以下载。但由于数据非常非常大,比如.JSON文件中的15k多个页面,有8000000个单词。给出了用于向该文件写入数据的代码片段。请建议其他优雅快捷的方式,因为这需要太多时间,而且会让机器冷冻一段时间。

function bulk_download_json(label_id) {
    $.msg({
        //autoUnblock : false,
        clickUnblock : false,
        beforeUnblock: function() {
            $.ajax({
                type: "GET",
                url: "/initiate_download/?label=" + label_id,
                success: function(data) {
                    var bulk_mails = data;

                    bulk_download_filename = label_id.concat(".json");
                    var bulk_json_file = JSON.stringify(bulk_mails);
                    var a = window.document.createElement('a');
                    a.href = window.URL.createObjectURL(new Blob([bulk_json_file], {
                        type: 'text/json'
                    }));
                    a.download = bulk_download_filename;
                    // Append anchor to body.
                    document.body.appendChild(a)
                    a.click();
                    // Remove anchor from body
                    document.body.removeChild(a)
                    remove_bulk_data(label_id);
                }
            });
         //self.unblock();
        }
    });
}

您可以使用分页,在这里您将传递page_no和提取记录的限制

[参考]https://docs.djangoproject.com/en/1.8/topics/pagination/

最新更新