请求到后台百分号被删除原因_接口测试平台代码实现85: 全局请求头1

    本节开始要制作一些次要功能,但是也是非常实用的。比如项目内的全局请求头。

     首先看我们的前端页面,这个全局请求头的按钮:

9ca637689b863e8665b763140d206a3f.png

我的设计是呢,点击后,出现一个弹层,这个弹层里除了保存/取消按钮 标题外。要有一个table表格。每一行就是一个该项目的全局变量-请求头。

像这样:

64488bb76bc5418cdc2ba172a025fe14.png

我们简化了删除功能,设计为每次点击保存按钮,js函数中只要为空的行会被自动删除。

而既然是变量,那么就需要有变量名和 变量值。变量名可自定义,变量值必须是key-value这种键值对。所以每行由三个输入框组成。

新增按钮会新建一个空白的行出来。这个过程是由js前端控制。

保存按钮的js功能,设计为,循环读取所有行内容,放到一个列表里,传递给后端,后端直接覆盖到数据库的该项目中。

设计基本上完事了,现在我们开始码前端代码:

首先是打开P_apis.html,找到一个风水宝地,新建一个大div作为这个弹层的底板。

4571d258535b2c3a9023853cd68b1b47.png

大家先理解即可,最后我会提供可复制粘贴的完整div代码。

效果如下:

a4c783bde25a3990e8579f301e993219.png

我们还是要先给它打开关闭的代码写好。

首先是它的style中 加入一个默认隐藏:

ed82dc5f3e23d91e0b6c940b06f44b5a.png

现在刷新页面 它应该已经不见了。

然后是在下面的按钮全局请求头的onclick中设置:

412469e2913d12f1ee4081ad714a0511.png

我们再去下面去新建这个js函数,它的作用就是打开这个div弹层。

5a75c673704daa5afd040f5de4963865.png

然后是取消按钮的关联和对应js函数:

67fa280cea9ee42e589d0323a312ca49.png

为什么取消就简简单单的刷新下页面就可以了呢?因为我设计是这个请求头数据是从进入这个接口库页面的时候 直接带进来,由{% for i in ... %} 来展示,每次我们修改后,无论是保存还是取消,都要刷新下页面也就会触发刷新下请求头数据。这个方法开发起来非常简单可靠。

        现在我们在把这个空空的save保存js函数也给它写上:

f30573e7986f00a5c02d76b796bc8951.png

这个函数的设计是,拿到所有数据,加上项目id,发送给后端后,刷新页面。

{# 全局请求头 #}<div id="project_header_div" style="display: none;border-radius:5px;width: 70%;height: 70%;position: absolute;left: 15%;top: 15%;box-shadow: 4px 4px 8px grey;padding-left: 10px;background-color: white">    <div class="btn-group" style="float: right">        <button onclick="project_header_save()" type="button" class="btn btn-success">保存button>        <button onclick="project_header_close()" type="button" class="btn btn-default">取消button>    div>    <h4>请设置本项目的全局公共请求头:h4>div><script>    function project_header_div_show() {        document.getElementById('project_header_div').style.display = 'block';    }    function project_header_close() {        document.location.reload()    }    function project_header_save() {    }script>

之后我们去后台数据库层,建立一张专门存放这些公共请求头数据的表。

d454a9bd05c642090b1d80304304fa30.png

class DB_project_header(models.Model):    project_id = models.CharField(max_length=10,null=True) #所属项目id    name = models.CharField(max_length=20,null=True) #请求头变量名字    key =  models.CharField(max_length=20,null=True) #请求头header的 key    value = models.TextField(null=True) #请求头的value,因为有可能cookie较大,达到几千字符,所以采用大文本方式存储    def __str__(self):        return self.name

然后别忘了执行那俩句命令:

22f7adc1a94ebc2c715cd6175c3dc2b1.png

然后去admin.py中写上这个表:

941ff38696a15873a325c991b375405c.png

然后我们重启服务,去后台,找到这个表,添加2个数据:

97e23cd906560bbd4662059affaef0d7.png

我的项目id是1,所以俩个header数据的project_id要写1,其他内容随便写。

4f41cbc198cd882c0017b6defb8c5a9c.png

然后,本节内容就到此为止了。欢迎持续关注和分享哦~

感兴趣的可以加群,加博主微信:qingwanjianhua 拉你入群

加社团:https://testerhome.com/wqrf

关注博主博客:https://wangzijia.blog.csdn.net/

点亮该项目:https://github.com/Woqurefan/ApiTest/

体验在线地址:http://47.97.77.125:8000/home/

本公众号:测试开发干货

最后帮群内小伙伴免费推广下公众号,欢迎山西的老乡们加入这个有爱互助的小圈子~ sxlfgx_club

2bc1c61378efe63a2ec5ce2680c5bbfb.png

6010ad56cd9f3bc70b76148eae43e9de.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值