python基于django框架下读代码——页面元素和数据元素在代码中的位置查找

Python+django写的集成版本自动打包发布,用户意见禅道问题收集的项目
本篇的主要目的是
1、**页面元素查询:**查找网页中“构建”部分代码所在位置
python基于django框架下读代码——页面元素和数据元素在代码中的位置查找
2、**数据信息查询:**查找网页中“版本”部分数据存储使用的数据库等内容
python基于django框架下读代码——页面元素和数据元素在代码中的位置查找
适合人群:测试小白
需要准备的知识:
1.django说明文档:
https://docs.djangoproject.com/zh-hans/2.1/
2.django的框架原理:
路由-控制器-网页模板/数据模板
路由:负责分配路径(任务区),比如文件所在的路径包括自路由(分路径),通常存放在:urls.py的文件中,通过url找到路由
控制器:负责执行并且干活,处理请求和响应请求,页面元素一般是在view.py中可以查看到载入了哪些模板
templates
模板文件,页面模板,用于生成前段页面
主要思想:
1.模板确定用什么数据生成
2.查看对应的数据控制器(包括模板文件的读取和处理)
3.重点关注view.py视图部分

过程:
一、查询页面内容:
1.该网页对应的路由为“/build”
2.打开UZI-urls.py ,子路由在cibuild-urls中定义
python基于django框架下读代码——页面元素和数据元素在代码中的位置查找
2.打开cibuild-urls.py查询子路由器下使用到的控制器位置
注意django的path函数(需要学习)
python基于django框架下读代码——页面元素和数据元素在代码中的位置查找
3.打开views.py查看index函数
python基于django框架下读代码——页面元素和数据元素在代码中的位置查找
views.py是比较重要的部分,主要是视图控制器的数据一般是在这个里面
所以找到了对应的视图模板啦:jenkins.html的jobs部分
拓展
from util import jenkinsutil
从工具模块引入jekins工具,该工具主要用于调用jenkins的接口来获取数据
你要了解 jenkins 标准库的话,文档在这里
jekins的标准库:
https://python-jenkins.readthedocs.io/en/latest/examples.html#example-3-working-with-jenkins-jobs
util:文件夹里面一般存放的是一些工具,这里是指调用了jenkinsutil这个工具来获取接口数据
4.打开templates里面的jenkins.html查找到jobs就可以啦。
拓展
怎么将模板内的字段同jenkinssuit.py中对应,通过python的dict类型,django的末班解析器可以解析这个模板,然后把数据替换进去。

二、查询数据:
1.从git上pull代码下来,中间有个问题就是关于interpreter的问题,因为从新建了一个项目文件,所以没有导入interpreter,后续还要导入。
2.根据django提供的文档,总目录中一般有:constant.py,wsgi.py等所以UZI里面是总的路由
https://docs.djangoproject.com/zh-hans/2.1/intro/tutorial01/
python基于django框架下读代码——页面元素和数据元素在代码中的位置查找
3、打开目标网页发现路由后面有一个version
python基于django框架下读代码——页面元素和数据元素在代码中的位置查找
4、打开(总路由名此处是UZI-urls.py)
查找到子路由version的子路由路径:verison.urls
python基于django框架下读代码——页面元素和数据元素在代码中的位置查找
5.打开version文件夹的urls.py,可知道/build路由对应的控制器是:views.index
python基于django框架下读代码——页面元素和数据元素在代码中的位置查找

6.打开views.py查看index函数定义
versions = Version.objects.filter(package=current_package) #最主要的代码
根据前段声明该控制器的数据主要来源于:
python基于django框架下读代码——页面元素和数据元素在代码中的位置查找
verison文件夹里面的models文件
7.打开version-models.py
python基于django框架下读代码——页面元素和数据元素在代码中的位置查找
从第一句可以知道他们的数据来自于UZI内的setting
8.打开UZI-settings.py
9.这个时候就能看到数据来源于:databases sqlite3文件数据库

总结:
1.学习python,关于解析器的问题
2.数据库可视化
3.django学习