首页 > 数据库 >17-项目实战-上传excel并保存到数据库

17-项目实战-上传excel并保存到数据库

时间:2023-02-01 11:57:27浏览次数:46  
标签:17 title text excel home 上传 page row

1. 创建数据表

class Home(models.Model):
    """首页"""
    title = models.CharField(verbose_name="标题", max_length=32)

    def __str__(self):
        return self.title

2. 创建路由(url)

from bbc_list.views import home_page

rlpatterns = [
path('home/multi/', home_page.home_multi),]

3. 创建视图函数(views-home_page.py)

def home_multi(request):
    """批量上传excel"""
    from django.core.files.uploadedfile import InMemoryUploadedFile
    from openpyxl import load_workbook

    # 1.获取用户上传的文件对象
    file_object = request.FILES.get("exc")
    print(type(file_object))

    # 2.对象传递给openpyxl,由openpyxl读取的文件内容
    wb = load_workbook(file_object)  # 可以给一个文件路径 / 对象
    sheet = wb.worksheets[0]

    # 3. 循环获取每一行数据
    for row in sheet.iter_rows(min_row=2):  # 从第二行开始到最后
        print("row=", row)
        text = row[0].value  # 第一列数据
        print("text=", text)
        exists = models.Home.objects.filter(title=text).exists()
        if not exists:
            models.Home.objects.create(title=text)
    return redirect("/home/page/")  # 跳转回首页

4. 创建html页面

<!--引入公共html-->
{% extends 'one.html' %}

<!--公共占位符内内容-->
{% block content %}

<div class="container">
    <div class="panel panel-default">
        <!-- Default panel contents -->
        <div class="panel-heading">
            <span class="glyphicon glyphicon-th-list" aria-hidden="true"></span>
            批量上传
        </div>
        <div class="panel-body">
            <form method="post" enctype="multipart/form-data" action="/home/multi/">
                {% csrf_token %}
                <div class="form-group">
                    <input type="file" name="exc">
                </div>
                <input type="submit" value="上传" class="btn btn-info btn-sa">
            </form>
        </div>

    </div>
 </div>
{% endblock %}

标签:17,title,text,excel,home,上传,page,row
From: https://www.cnblogs.com/kh-1314/p/17059749.html

相关文章

  • 16-项目实战-上传文件-实战
    1.创建数据表classUserInfo(models.Model):"""用户信息"""name=models.CharField(verbose_name="姓名",max_length=32)age=models.IntegerField(ve......
  • 15-项目实战-上传文件-配置media
    #在django的开发过程中有两个特殊的文件夹:static:存放静态文件的路径,包括:CSS,JS,项目图片.media:用户上传的数据.1.配置media#启用media:在根目录......
  • python excel操作读取,写入
    importxlrd,xlwtfromxlutilsimportcopy#读取excel表格某个数据data=xlrd.open_workbook("select125.xls")tablerd=data.sheet_by_name("Sheet1")rowNum=tablerd......
  • ASP.NET 前端大文件上传
    ​ 以ASP.NETCoreWebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API,包括文件的上传和下载。 准备文件上传的API #region 文件上传......
  • SpringBoot 前端大文件上传
    ​ 最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现。在某些业务中,大文件上传是一个比较重要的......
  • 简单三步上传公众号文章附件
     网址:https://uom.cn/f/# 第一步:打开网站,微信扫码登录,会自动返回主页 第二步:点击选择文件按钮 第三步:选择文件并打开  此时上传就已经完成了,会提供三个方......
  • 自定义上传图片(自定义上传input样式)
    ##1.Html文件<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Docum......
  • PHP 将内容保存为Excel
    //使用这一对Header,程序中所有输出内容会保存至一份excel中并下载header('Content-type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');head......
  • JDK8线上环境导出Excel报错空指针,原因是缺少相应字体
    java.lang.NullPointerExceptionatsun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)atsun.awt.FontConfiguration.readFontConfigFile(Fo......
  • easy excel 导入导出
    随笔记录通过easyexcel实现导入导出第一步:导入依赖<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.0</versi......