前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >接口测试平台代码实现123: 项目内全局变量-2

接口测试平台代码实现123: 项目内全局变量-2

作者头像
我去热饭
发布2022-05-19 09:55:30
2150
发布2022-05-19 09:55:30
举报
文章被收录于专栏:测试开发干货

在我们上一节中,计划了可在项目内全局使用的变量系统的相关设计。

那么本节开始前端开发,首先要考虑,这个维护在哪呢?首先,我计划这个全局变量 的所属 不是项目,而是用户本身。

也就是说,它只是可以应用在项目中,但是隶属于用户,该用户的所有旗下项目都可以使用。它的本身属性字段中也只有用户id,并没有项目id,。

因为在项目中才需要对其设置,选用等,所以我们前端的维护,依然放在项目内。

我们需要新建第四个子页面:全局变量

所以首先在我们的P_apis.html,P_cases.html,P_project_set.html 三个页面的顶部菜单,分别都加入 全局变量 超链接。

我给它起名为/global_data/项目id

然后我们去新建一个html,作为这个页面:

新建后,我们复制一个nav顶部菜单进来。并注意设置好选中class="active"给自己。

接下来,我们去urls.py中设置好

然后去views.py中写好进入的函数:

重启服务后,我们现在点击进入全局变量,应该就不报错了:

然后就是在child_json中,设置好数据了:

不过我们目前还没有去建造变量的表,所以我们接下来去models.py中进行建造表:

代码语言:javascript
复制
class DB_global_data(models.Model):
    name = models.CharField(max_length=20,null=True) #名字
    user_id = models.CharField(max_length=10,null=True) #所属用户id
    data = models.TextField(null=True) #存储的所有数据
    def __str__(self):
        return self.name

然后我们执行俩句同步命令:

再去admin.py中注册:

现在我们在后台也可以看到了:

这里我们要先手动设置一条demo数据,用来方便我们的前端开发任务:

我的用户id是3,因为是手动创建,所以要先看下自己id哦,在后台的用户表可以点击进入自己的用户查看id。

然后我们去views.py中的child_json()中设置好数据:

这里我们要返回俩个数据:

  1. 项目本身:我们要增删改查当前项目保存的变量套选用设置
  2. 项目所属用户的旗下全部变量套:注意,这里我返回的并不是登陆用户的变量套,而是项目的变量套。正常来说,用户进入的若是自己的项目,那么这里返回的一致。但是如果用户访问的是其他人的项目,那么此时若返回的是用户的变量套,那么项目和变量套 就不是同一个人的,也没办法匹配。 没有实际意义。而且后期我们开发出权限系统后,会有严格的限制,是可以查看,还是可以编辑。

这里我们要趁早 解决一个之前遗留的坑 才好继续:

我们之前项目的属性中,并没有用户id,现在要加上。因为公司的内部用户系统的用户名一般是固定且唯一,所以我们早期使用了用户名作为标记所属。但是为了方便后续,且更加严谨,这里要新增用户id, 那么我们之前的旧项目,趁着大家还没有正式广泛使用,最好手动在后台给加上用户id。

然后执行俩句同步命令:

在后台 找到我们的项目,手动给加上用户id,用户id从这里查:

顶部的url中的 3就是这个用户的id了:

然后我们再给我们之前的旧项目都手动写上对应的用户id并保存。

然后去修改我们views.py中 新建项目的函数:add_project,给它增加用户id的存储,这样我们新老项目都修改好了。这种情况大家也算是涨了一次经验了。

修改好之前的坑之后,我们再回到child_json函数中,继续写刚刚的全局变量代码:

如图,可以正常拿到数据了。

复制版本如下:

代码语言:javascript
复制
    if eid == 'P_global_data.html':
        from django.contrib.auth.models import User
        project = DB_project.objects.filter(id=oid)[0]
        global_data = DB_global_data.objects.filter(user_id=project.user_id)
        res = {"project":project,"global_data":global_data

本节内容较多,到此结束

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档