前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >接口测试平台代码实现25:项目列表页的新增功能

接口测试平台代码实现25:项目列表页的新增功能

作者头像
我去热饭
发布2022-05-19 08:40:35
9870
发布2022-05-19 08:40:35
举报
文章被收录于专栏:测试开发干货

本节主要来实现新增一个项目的功能:

我的设计是:

点击新增按钮,出现一个弹层,这个弹层上有输入框,要求用户输入项目的名称。还有确定/取消 按钮。

这个弹层默认是隐藏的一个div,当点击新增按钮后,修改该弹层的隐藏属性为显示。当点击确定/取消按钮后,再把弹层的隐藏属性变为隐藏。

点确定的时候,会发送给后台一个异步请求,带着用户写的新项目名字。让后端新建一个项目。等返回成功后,项目列表页面刷新,用户即可看到新增的那个项目了。

上述的设计中,我们最好先着手开发这个div弹层,不要一开始把它设置成隐藏。不然我们中间的数次调试,每次都要先点击 新增按钮 才能看到结果,比较麻烦。所以就让它先一直显示着,等我们调好之后。再写好默认隐藏属性。

之后我们很多的设计,一开始都要考虑好步骤,这样可以大大减少中间调试所浪费的时间。

打开我们的project_list.html, 在最底下(我说的最底下,都是在 </body > 上且紧贴的位置) 新建一个div

然后给这个div加上 如下的css属性:

其中,高度属性不设置,由内容决定,以免出现大部分留白或者溢出。

然后我们要给它添加一个输入框和俩个按钮:

看看效果

现在我们要让取消按钮生效:

取消按钮:点击后 修改这个div的隐藏属性为隐藏,所以要给这个div加个id以便定位:id="add_project_div"

因为取消按钮要执行的js语句只有一句,我们可以偷懒直接写在onclick属性中,而不需要先写个js函数,然后onclick再调用这个函数。

注意,这种写法,语句前面一定要先写 javascript:

现在我们在页面上刷新后试一下,点击取消按钮,发现这个弹层成功隐藏了。

接下来就是我们顺便给这个div 写成默认隐藏的,需要用户点击 新增项目按钮才能显示~

所以给它加上一个display属性:

然后给新增项目按钮 增加一个onclick的属性:

让我们刷新页面试试效果:

发现默认是不显示的,点击新增按钮后显示,点击取消按钮后消失。没问题了

接下来就是要让这个新增项目功能真实生效。

我们先在底部加一个script标签,里面新建一个function函数,取名add_project()

然后我们要获取到 用户输入的那个项目名字,也就是那个input标签的内容,为了定位,就先给那个input加一个id

然后我们写add_project()函数:

我们新定义的变量可以获取到这个输入框的内容,也就是value

然后就要写个异步请求,发给后台:

url依然是/add_project/ ,注意前后都必须有/

然后带一个参数,就是project_name

等收到接口成功返回后,直接刷新页面,用语句:document.location.reload();

然后我们要给这个弹层的确定按钮,加上onclick属性,来调用这个add_project()函数

好了,写到这里,我们前端页面基本做完了,开始写urls.py和views.py了 准备:

urls.py加入:

注意,可能有同学这里的设置和我的不一样,其实本质上都差不多。因为django版本不同,所以写法不一样,可以多百度学习一下,找个demo就知道后面都怎么弄了,不要着急走火入魔。

然后我们去写views.py:

新建了这个 add_project函数:

它要做三件事:

  1. 接收project_name
  2. 去项目表新建项目
  3. 返回给前端一个空证明已经成功完成

代码如下可复制:

代码语言:javascript
复制
# 新增项目
def add_project(request):
    project_name = request.GET['project_name']
    DB_project.objects.create(name=project_name,remark='',user=request.user.username,other_user='')
    return HttpResponse('')

这里我们新学到了一个数据库新增数据的方法:

表的类名.objects.create()

括号内写各个字段的值,这里我们的项目名字已经获取到,创建者名字就从request参数中的user.username方法获取到(只要有登陆态的都肯定有名字)

其他俩个参数 备注/其他管理员 都是空。

然后我们重启服务,刷新页面。测试一下:

可以看到 新增功能也成功了。

今天就学到这里了。下一节我们讲 这个项目的详情页的框架构造 和 进入按钮功能。

大家代码可能有这样那样的问题,当解决不了的时候可以留言询问留言板 ,或者直接下载本系列教程中的这个项目代码的打包,解压到本地对比一下。

链接: https://pan.baidu.com/s/1ILWSZl4iJpzrEV59i6EVFg 密码: c3vl

能跟到现在的同学属实不易,已经成功超过99%的同行了(粗略估计中国测试人数超过100万,能做测开写平台的不到1万甚至更少)

当然作者免费分享这些技术以来,受到过至少10几个同行高级测开和机构的恶意中伤和辱骂,所以大家多点赞分享给作者点动力哈~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发干货 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档