py文件:

from django.utils.http import urlquote
from rest_framework.views import APIView
from django.shortcuts import render, redirect, HttpResponse
from dal import models
from django.http import JsonResponse, FileResponse, StreamingHttpResponse
import os import xlwt BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # C:\Users\user\Desktop\DownTest class fileShow(APIView): def get(self, request): message = {}
userinfo = models.UserInfo.objects.all() workbook = xlwt.Workbook(encoding='utf-8') # 新建工作簿\ sheet1 = workbook.add_sheet("用户表") # 新建sheet
sheet1.write(0, 0, "ID") # 第1行第1列数据
sheet1.write(0, 1, "用户名") # 第1行第1列数据
sheet1.write(0, 2, "密码") # 第1行第1列数据
sheet1.write(0, 3, "创建时间") # 第1行第1列数据 path = BASE_DIR + "\\utils\\username.xlsx" # 储存路径 excel_row = 1
for obj in userinfo:
data_id = obj.id
data_username = obj.username
data_password = obj.password
data_time = obj.create_time sheet1.write(excel_row, 0, data_id)
sheet1.write(excel_row, 1, data_username)
sheet1.write(excel_row, 2, data_password)
sheet1.write(excel_row, 3, str(data_time))
excel_row += 1 workbook.save(path) file = open(path,'rb') # 字符串替换成文件
print("file",file.name)
# file_names = file.name.split('/')[-1]
# print("file_names",file_names) response = FileResponse(file)
response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = "attachment;filename={}".format(urlquote(path)) # 字符串替换成下载文件
print(response)
return response

html的ajax请求:

<button id="up">下载文件</button>  一个按钮

请求:

// 下载文件
$("#up").on("click", function () {
$.ajax({
url: "down/",
type: "get",
data: {},
success: function (data) {
var $a = $('<a></a>');
$a.attr("href", "http://127.0.0.1:8000/down/"); # 红色的是你下载路径
$("body").append($a);
$a[0].click();
$a.remove();
} })

【django基础】django接口 异步ajax请求 导出数据库成excel表(包裹前端后端)的更多相关文章

  1. python实现导出excel表(前端+后端)

    之前在做项目管理系统的时候需要实现将数据导出到excel表的功能,搜索之后发现了python的xlwt模块可以很好的实现这项功能. 首先是导入xlwt模块: import xlwtfrom io im ...

  2. phpexcel导出数据库成excel文件

    <?php error_reporting(E_ALL); date_default_timezone_set('Europe/London'); /** PHPExcel */ require ...

  3. Ajax请求导出Excel的问题

    文章转载自: http://yuwenlin.iteye.com/blog/2275289 Ajax请求导出Excel的问题描述: 前端发起Ajax请求get或post,后台使用Poi生成excel文 ...

  4. mysqldump 导出数据库为DBname的表名为Tname的表结构 导出数据库的所有表的表结构

    mysqldump -uroot -p password -d DBname Tname >db.sql #关建点是"-d"参数 导出数据库的所有表的表结构 mysqldum ...

  5. mysql 导入导出数据库、数据表的方法

    mysql 导入导出数据库.数据表的方法. Linux操作系统中,均在控制台下操作.1,导入数据库:前提:数据库和数据表要存在(已经被创建)(1)将数据表 test_user.sql 导入到test ...

  6. django基础之day08,ajax结合sweetalert的使用

    models.py文件 from django.db import models class User(models.Model): username=models.CharField(max_len ...

  7. Django基础--Django基本命令、路由配置系统(URLconf)、编写视图、Template、数据库与ORM

    web框架 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构. 使用框架可以帮你快速开发特定的系统. 简单地说,就是你用别人搭建好的舞台来做表演. 尝试搭建一个简单 ...

  8. 异步ajax请求数据处理

    jQuery.ajax(url,[settings]) 概述 通过 HTTP 请求加载远程数据. jQuery 底层 AJAX 实现.简单易用的高层实现见 $.get, $.post 等.$.ajax ...

  9. Jquery ajax请求导出Excel表格

    直接贴代码吧 $("#btn-export").click(function(){ var exportExcel = "export_excel"; data ...

随机推荐

  1. Spring注解 - 生命周期、属性赋值、自动装配

    一.Bean的生命周期 流程 Bean创建 -- 初始化 -- 销毁 创建: 单实例:在容器启动时创建对象 多实例:每次调用时创建对象 初始化: 都是在对象创建完成后,调用初始化方法 销毁: 单实例: ...

  2. 基于 Roslyn 实现一个简单的条件解析引擎

    基于 Roslyn 实现一个简单的条件解析引擎 Intro 最近在做一个勋章的服务,我们想定义一些勋章的获取条件,满足条件之后就给用户颁发一个勋章,定义条件的时候会定义需要哪些参数,参数的类型,获取勋 ...

  3. vs 如何将dll打包到exe中

    方法如下:首先需要安装NuGet 然后安装Fody.Costura 重新启动vs 编译项目即可 虽然根目录下还生成了dll但是你的程序已经可以脱离dll运行了,其实是将你的dll打入了exe中你可以看 ...

  4. vuepress-theme-reco + Github Actions 构建静态博客,部署到第三方服务器

    最新博客链接 Github链接 查看此文档前应先了解,vuepress基本操作 参考官方文档进行配置: vuepress-theme-reco VuePress SamKirkland / FTP-D ...

  5. 关于浏览器Number.toFixed的错误修复

    问题描述如下: var n = 1.255; var fixed = n.toFixed(2); console.log(fixed);//结果:1.25 /* 以上代码运行预期的结果是1.26,但是 ...

  6. shell编程学习之使用jq对json数据进行提取

    shell编程学习之使用jq对json提取 jq命令允许直接在命令行下对JSON进行操作,包括分片.过滤.转换等 ,jq是用C编写,没有运行时依赖,所以几乎可以运行在任何系统上.预编译的二进制文件可以 ...

  7. 什么是EIP、ESP、EBP

    堆栈是一种简单的数据结构,是一种只允许在其一端进行插入或删除的线性表.允许插入或删除操作的一端称为栈顶,另一端称为栈底,对堆栈的插入和删除操作被称入栈和出栈.有一组CPU指令可以实现对进程的内存实现堆 ...

  8. MySQL学习(5)

    三 触发器 对某个表进行某种操作(如:增删改查),希望触发某个动作,可以使用触发器. 1.创建触发器 create trigger trigger1_before_insert_tb1 before ...

  9. P4147 玉蟾宫 题解

    原题链接 简要题意: 求最大 \(0\) 矩阵.(将字符转化为数字) 本题是模板题,可以用来爆踩.??? 悬线法 来了! 其中绿色是 \(0\),红色是 \(1\). 下面以这个图为例讲一下算法流程. ...

  10. # Unity 游戏框架搭建 2019 (十六、十七) localPosition 简化与Transform 重置

    在上一篇我们收集了一个 屏幕分辨率检测的一个小工具.今天呢再往下接着探索. 问题 我们今天在接着探索.不管是写 UI 还是写 GamePlay,多多少少都需要操作 Transform. 而在笔者刚接触 ...