python带界面试试导入excel_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 的键来自 中的 name 。 FILES 的值是一个标准的Python字典, 包含以下三个键:

filename :字符串,表示上传文件的文件名。

content-type :上传文件的内容类型。

content :上传文件的原始内容。

注意 FILES 只在请求的方法是 POST ,并且提交的

包含 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)

#--------------模板配置-----------------------------------

{% csrf_token %}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值