Django支付宝自动转账功能(一)

首先说明一下最终实现的效果:===>用户上传excel文件====>网页端显示读取文件并显示预览效果====>上传文件至服务器,服务器后台开始调用接口自动转账===>所有转账信息存储到数据库中,失败信息返回到网页上。

上一篇已经大致将支付接口实现了,这一篇将介绍如何和Django后台连接起来使用,在项目中使用的是excel文件储存转账信息的,所以我们首先需要了解如何读取Excel文件,然后才是进行转账操作,django则是提供网页服务,接收用户上传excel文件,保存交易信息等等。

1.网页端的预览:
    
 选择上传文件后需要将文件内容读取并显示出来,方便确认信息是否有误后在上传,这里主要是通过JS读取文件内容,然后再把数据以表格的形式展现出来。这里用到了一个一个xlsx插件

//文件读取

HTML部分:

文件预览

最终效果:
Django支付宝自动转账功能(一)_第1张图片

2.Excel文件上传和保存:
   
通过Ajax提交form表单数据到后台,Ajax操作没什么可说的了,需要注意的是form 的enctype属性值,来看一下W3C上面的介绍
Django支付宝自动转账功能(一)_第2张图片
Django支付宝自动转账功能(一)_第3张图片
因此我们在上传文件的时候要用enctype="multipart/form-data"

前端发送文件了接下来就是后端接收文件了,文件数据会包含在request.FILES里面(注意,只有当request方法为POST并且form 的enctype属性值为multipart/form-data的时候request.FILES才会有数据)
request.FILES中包含下面几个属性:name(文件名)、size(文件大小)、content_type(文件类型)、read()读取整个文件、chunks()返回一个生成器对象

file = request.FILES.get('payment', None)
f = open(file.name, 'wb')
for chunck in file.chunks():
    f.write(chunck)
f.close()

    至此文件就保存下来了,文件名就是上传的文件名,路径默认为根路径

你可能感兴趣的:(Django支付宝自动转账功能(一))