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

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

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


我的设计是:

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

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

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


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

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


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

微信图片_20220617201329.png

然后给这个div加上 如下的css属性:微信图片_20220617213948.png

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

然后我们要给它添加一个输入框和俩个按钮微信图片_20220617213954.png

看看效果微信图片_20220617214000.png

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

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

微信图片_20220617214006.png


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

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

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


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


所以给它加上一个display属性:微信图片_20220617214018.png

然后给新增项目按钮 增加一个onclick的属性:微信图片_20220617214023.png

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

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


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

我们先在底部加一个script标签,里面新建一个function函数,取名add_project()微信图片_20220617214030.png

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

然后我们写add_project()函数:微信图片_20220617214044.png

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

然后就要写个异步请求,发给后台:微信图片_20220617214051.png

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

然后带一个参数,就是project_name

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


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

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

urls.py加入:微信图片_20220617214108.png

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


然后我们去写views.py:

微信图片_20220617214118.png

新建了这个 add_project函数:

它要做三件事:

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

代码如下可复制:

# 新增项目
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方法获取到(只要有登陆态的都肯定有名字)

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


然后我们重启服务,刷新页面。测试一下:微信图片_20220617214135.png微信图片_20220617214141.png

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


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


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

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

相关文章
|
1月前
|
算法 IDE Java
Java 项目实战之实际代码实现与测试调试全过程详解
本文详细讲解了Java项目的实战开发流程,涵盖项目创建、代码实现(如计算器与汉诺塔问题)、单元测试(使用JUnit)及调试技巧(如断点调试与异常排查),帮助开发者掌握从编码到测试调试的完整技能,提升Java开发实战能力。
190 0
|
3月前
|
存储 测试技术 虚拟化
VMmark 4.0.3 - 虚拟化平台基准测试
VMmark 4.0.3 - 虚拟化平台基准测试
80 0
VMmark 4.0.3 - 虚拟化平台基准测试
|
2月前
|
敏捷开发 运维 数据可视化
DevOps看板工具中的协作功能:如何打破开发、测试与运维之间的沟通壁垒
在DevOps实践中,看板工具通过可视化任务管理和自动化流程,提升开发与运维团队的协作效率。它支持敏捷开发、持续交付,助力团队高效应对需求变化,实现跨职能协作与流程优化。
|
2月前
|
Java 测试技术 Spring
简单学Spring Boot | 博客项目的测试
本内容介绍了基于Spring Boot的博客项目测试实践,重点在于通过测试驱动开发(TDD)优化服务层代码,提升代码质量和功能可靠性。案例详细展示了如何为PostService类编写测试用例、运行测试并根据反馈优化功能代码,包括两次优化过程。通过TDD流程,确保每项功能经过严格验证,增强代码可维护性与系统稳定性。
111 0
|
2月前
|
安全 Java 测试技术
Java 项目实战中现代技术栈下代码实现与测试调试的完整流程
本文介绍基于Java 17和Spring技术栈的现代化项目开发实践。项目采用Gradle构建工具,实现模块化DDD分层架构,结合Spring WebFlux开发响应式API,并应用Record、Sealed Class等新特性。测试策略涵盖JUnit单元测试和Testcontainers集成测试,通过JFR和OpenTelemetry实现性能监控。部署阶段采用Docker容器化和Kubernetes编排,同时展示异步处理和反应式编程的性能优化。整套方案体现了现代Java开发的最佳实践,包括代码实现、测试调试
89 0
|
2月前
|
人工智能 数据可视化 测试技术
UAT测试排程工具深度解析:让验收测试不再失控,项目稳稳上线
在系统交付节奏加快的背景下,“测试节奏混乱”已成为项目延期的主因之一。UAT测试排程工具应运而生,帮助团队结构化拆解任务、清晰分配责任、实时掌控进度,打通需求、测试、开发三方协作闭环,提升测试效率与质量。本文还盘点了2025年热门UAT工具,助力团队选型落地,告别靠表格和群聊推进测试的低效方式,实现有节奏、有章法的测试管理。
|
4月前
|
安全 前端开发 Linux
Immunity CANVAS Professional 7.27 (macOS, Linux, Windows) - 渗透测试和漏洞利用平台
Immunity CANVAS Professional 7.27 (macOS, Linux, Windows) - 渗透测试和漏洞利用平台
137 3
Immunity CANVAS Professional 7.27 (macOS, Linux, Windows) - 渗透测试和漏洞利用平台
|
5月前
|
人工智能 自然语言处理 测试技术
自然语言生成代码一键搞定!Codex CLI:OpenAI开源终端AI编程助手,代码重构+测试全自动
Codex CLI是OpenAI推出的轻量级AI编程智能体,基于自然语言指令帮助开发者高效生成代码、执行文件操作和进行版本控制,支持代码生成、重构、测试及数据库迁移等功能。
626 0
自然语言生成代码一键搞定!Codex CLI:OpenAI开源终端AI编程助手,代码重构+测试全自动
|
3月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
650 23
|
8月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。