zoukankan      html  css  js  c++  java
  • Python django前端导入Excel脚本

    EXECL 导入数据库

    这是测试脚本:

    可以先读取表格的内容,再通过下面的方式进行迭代
    
    from monitor.models import *
    import xlrd
    
    
    data = xlrd.open_workbook('/home/mypj/ip.xls')
    table = data.sheet_by_name('MPLS')
    
    table = data.sheet_by_name('DIA')
    t = table.row_values
    
    #通过列表推导式批量将数据放到一个List中
    iplist =[Ipinfo_model(
     order_id=t(i)[0],
     ipaddr=t(i)[1],
     mask=t(i)[2],
     customer=t(i)[3],
     addr=t(i)[4],
     line_no=t(i)[5],
     PE=t(i)[6],
     PE_port=t(i)[7],
     SW=t(i)[8],
     SW_port=t(i)[9],
     BW=t(i)[10],
     AS_no=t(i)[11],
     Vender=t(i)[13],
     baoxiu=t(i)[14]
     ) for i in range(1,table.nrows)]
    #再通过.bulk_create一次写入数据库
    Ipinfo_model.objects.bulk_create(iplist)
    

      

    #此脚本可直接EXCEL的数据导入到Django的数据库中,并进行读取

    '''
    FILES
    一个类字典对象,包含所有上传的文件。 FILES 的键来自 <input type="file" name="" /> 中的 name 。 FILES 的值是一个标准的Python字典, 包含以下三个键:
    filename :字符串,表示上传文件的文件名。
    content-type :上传文件的内容类型。
    content :上传文件的原始内容。
    注意 FILES 只在请求的方法是 POST ,并且提交的 <form> 包含 enctype="multipart/form-data" 时 才包含数据。否则, FILES 只是一个空的类字典对象。
    判断file提交的内容是否为空的方法是:if 'file' in request.FILES:
    FileField 有一个必须的参数:upload_to一个本地的文件系统路径,被附加到你的 MEDIA_ROOT 设置后面,
    在settings文件中你需要定义 MEDIA_ROOT ,它就是你要保存上传文件的目录的全路径
    保存到数据库中的只有文件(相对于 MEDIA_ROOT )的路径
    模版中用.url得到图片
    '''

    #--------------views config -----------------------------------
    from monitor.models import *
    import xlrd
    
    #文件导入时要用到Request.FILES类
    def upload(request):
        print request.FILES
        if request.FILES:
            ExcelUpload=request.FILES['ExcelUpload']
            print ExcelUpload
            name = str(ExcelUpload)
            #print 'name1:'name1
            #name=str(time.strftime('%Y%m%d%H%M%S'))+'xls'
            print os.path
            with open(os.path.join(name), 'wb+') as destination:
                for chunk in ExcelUpload.chunks():
                    destination.write(chunk)
    				
    		into_sql(request,name)
        return HttpResponse('its ok')
    
    
    def into_sql(request,name):	
    	data = xlrd.open_workbook(name)
    	table = data.sheet_by_name('sheet1')
    	t = table.row_values
    	iplist =[Ipinfo_model(
    	 order_id=t(i)[0],
    	 ipaddr=t(i)[1],
    	 mask=t(i)[2],
    	 customer=t(i)[3],
    	 addr=t(i)[4],
    	 line_no=t(i)[5],
    	 PE=t(i)[6],
    	 PE_port=t(i)[7],
    	 SW=t(i)[8],
    	 SW_port=t(i)[9],
    	 BW=t(i)[10],
    	 AS_no=t(i)[11],
    	 Vender=t(i)[13],
    	 baoxiu=t(i)[14]
    	 ) for i in range(1,table.nrows)]
    	Ipinfo_model.objects.bulk_create(iplist)
    
    #--------------模板配置-----------------------------------
    </form>
    <!--这里的Form是用于数据导入-->
    <!--注意 FILES 只在请求的方法是 POST ,并且提交的 <form> 包含 enctype="multipart/form-data" 时 才包含数据。否则, FILES 只是一个空的类字典对象。-->
    <form  action="/upload/" enctype="multipart/form-data" method="post"> {% csrf_token %}
    <input  type="file" style="height:20px;211px;" name="ExcelUpload">
    <input type='submit' value='导入'>
    </form>
    

      

  • 相关阅读:
    EF
    采用什么架构,才能够承受大访问量
    13个MVC的扩展
    c#与.NET的区别
    整合Spring.net到asp.net网站开发中初探
    C#多线程编程简述
    ASP.NET页面传值的几种方式
    正则RegEXp
    C#中Cache用法
    c#程序将excel文件转换成xml文件
  • 原文地址:https://www.cnblogs.com/syother/p/6732965.html
Copyright © 2011-2022 走看看