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>