【测开中台教程-22】资源上传功能后台设计

教育   2024-10-30 11:02   吉林  

       本公众号日更该测开中台图文教程,文末扫码进群群公告有源码资源包哦~ 视频课(一句一句讲)在知识星球,培训大课程需要私聊v:qingwanjianhua咨询哦~ 

    上节课我们对上传的资源前端页面功能进行了实现,大体如下:

    先看看之前的设计:

    点击上传按钮,出现对话框,让你选择本地文件,选完后其实已经自动上传给服务器存储了。然后钩子会偷偷把文件名记录到前端页面上,你自己在资源输入框输入的资源名称,点击添加按钮后,其实是把前端的文件名和你输入的资源名称,同时传递给后台,让后台做一个绑定,并且一起存放到数据库里。

    等到查看资源库列表的时候,最左侧展示的其实是数据库中这个资源名称,也就是你手动输入的这个,而非文件本来的名字(当然,可以加上展示)。当你点击下载后,系统会根据这个文件名去搜索资源并下载。

    到此,流程结束。

    前端vue组件中,我们额外引入下这个小提示层:

    然后就是实现,前端调用的俩个接口分别是:

    上传文件:upload_zy

    名称绑定:add_zy

          我们先去实现第一个,上传文件的接口,

    urls.py中按如下开发:

    然后就是后端views.py的俩个函数了:

    上传文件函数,获取前端文件,然后加上特殊前缀路径,再分段写入即可。

      绑定资源名称到数据库函数:

    注意:这里涉及到同名文件的默认替换,那数据库中的资源名称替换的问题。也就是说,如果上传的是新的文件,那就创建一条记录。如果是旧文件,那就替换文件,并更新资源名称。

    此时我们还需要处理一个问题,就是数据库一开始我们设计的时候只有一个name字段:

    而经过我们后面的设计,显然这个字段已经不够了,于是需要改成如下这样:

    然后更新命令:这两句只要之后修改models.py的结构而非函数,就要重新输入执行一次哦~ 以后不用我每次都截图了,大家熟记这两句命令吧~    

    最后看看函数:

     现在让我们测试一下:

 先点击上传,选一个本地资源,然后输入描述性的资源名称。

   点击添加按钮:

文件夹内也确实出现了:

       然后我们把前端样式增加一个文件原名:

看看最终效果:

再试试,同样文件,换个资源名称描述:

可以看到,已经更新成功了:

再测试多添加几个不同的资源:

此时发现了个优化问题,多次连续上传的时候,没有清理前一次的记录,那前端代码加上这个就好:(不加也不影响,因为会替换)

还有个优化问题,就是一次性上传多资源没有限制,这样会引发比较大的问题:

所以加上限制:

如果手滑选错了,需要更换文件,鼠标放上去就有小xx,点击就可以啦~


最后结果就这样了:

本节到此结束,欢迎观看知识星球相关的视频课,很多你需要的细节是视频演示时候才能看到的,可能博主不会在意这些小常识所以图文学下去的难度还是蛮大的~ 建议花几十块进入知识星球~ 

星球课程,今天恢复更新(前一周有事耽搁了抱歉,特此赔上一些入驻优惠卷)

没抢到的小伙伴不用感觉亏了,不差一杯奶茶了,真正亏的是需要但却没有看到底部这个广告的同学:

测试开发干货
测试开发不能每天只看鸡汤文,一定要多练习基础,保持每天都学或者巩固一个算法和技巧。欢迎关注本公众号,只发布干货文章。多多转载和分享哦~
 最新文章