当前位置: 首页 > news >正文

自动识别手机和电脑版本网站网页模板怎么下载

自动识别手机和电脑版本网站,网页模板怎么下载,网页考试题及答案,公司查询信息查询一、场景 平时工作记录在公司禅道上的问题想备份一份到本地#xff0c;但是又没有公司禅道的数据库信息#xff0c;有时候出测试报告想批量调整数据方便截图很困难#xff0c;同时也为了学习禅道数据流转过程#xff0c;所以有了把缺陷保存到本地一份的想法。 实际上禅道支…一、场景 平时工作记录在公司禅道上的问题想备份一份到本地但是又没有公司禅道的数据库信息有时候出测试报告想批量调整数据方便截图很困难同时也为了学习禅道数据流转过程所以有了把缺陷保存到本地一份的想法。 实际上禅道支持导入缺陷但是开源版不支持所以就饶了一圈。 二、思路 1.直接备份整个数据库行不通考虑通过接口获取缺陷信息生成sql插入到本地数据库中。 2.不使用接口获取信息直接导出缺陷数据通过获取Excel信息生成sql插入到本地数据库。 这里使用思路一因为禅道官方提供了二次开发指南包括基本的接口文档等等主要是更方便学习以接口的方式操作禅道。 三、操作流程 1.查看禅道官方文档获取token是第一步 获取Token - 禅道二次开发手册 - 禅道项目管理软件 2.根据提供的文档确定请求地址和方式调试后可获取token。注url_base前置URL可以根据登录禅道进行获取。例如http://192.168.1.1:8080/zentao/user-login-L21heDQxMi8.html这个地址就是http://192.168.1.1:8080/zentao 3.获取bug信息。注在官方手册上只能找到获取产品bug的接口文档但是我的禅道上没有产品这个概念只有项目。实际上把products改为projects可以直接获取项目的bug信息其接口文档的评论区上也提供了其他方法但是不好用。这里加上status、limit两个参数可以查看所有的bug。 4.信息可以拿到开始分析数据库结构主要是步骤中图片文件的关联关系体现在zt_file和zt_bug两张表。 对应关系1zt_bug表中step字段文件名的前缀数字即对应zt_file文件的id 对应关系2zt_file表文件pathname和图片路径的关联关系比如2024/12/1.png对应的就是ZenTao/app/zentao/www/data/upload/1/202412/1.png。注因为是插入的数据所以pathname就用的id实际上禅道会对创建产生的图片文件会进行加密肯定不会叫这个名字 5.理清接口调用和数据库关联关系后开始写代码。这里使用python进行操作。代码结构如下其中获取sql等场景操作都在scene下其余都是封装的一些方法。 5.1 获取sql所需要的数据信息 from api.zentao import zentao import json from common.json_extractor import extractor from common.read_data import data class Get_sqlData():def __init__(self):self.data Nonedef get_sql_data(self,header,json_data):json_data json.dumps(json_data)res zentao.zentao_login(datajson_data, headersheader)data.update_ini(../config/setting.ini, token, token, res.json()[token])print(res.json()[token])header {Content-Type: application/json,token: res.json()[token]}res zentao.zentao_bug(id5, headersheader)# print(res.json())title_list extractor.extract_by_jsonpath(res.json(), $.bugs[*].title)steps_list extractor.extract_by_jsonpath(res.json(), $.bugs[*].steps)# print(steps_list)pattern r\{(\d)\.(?:jpeg|png)\}extracted_numbers extractor.extract_numbers_from_img_tags(steps_list, pattern)# print(extracted_numbers)return title_list,steps_list,extracted_numbers get_sqlData Get_sqlData() if __name__ __main__:header {Content-Type: application/json}json_data {account : admin,password : 123456}res get_sqlData.get_sql_data(header,json_data)print(res) 5.2 生成sql语句main函数中注释的部分用于切换生成哪个sql语句这里需要生成zt_file和zt_bug两个表的sql语句。 from get_sql_data import get_sqlDataclass GenerateSql():def __init__(self):self.data Nonedef generate_sql_bug(self,sql_template,title_listNone,step_listNone,file_id_listNone):if file_id_listNone:sql_statements []for title,step in zip(title_list,step_list):# 使用str.format()方法替换占位符sql_statement sql_template.format(titletitle.replace(, ), # 转义单引号以防止SQL语法错误stepsstep.replace(, ) # 同样转义HTML标签中的单引号)sql_statements.append(sql_statement)return sql_statementselse:sql_statements []for id in file_id_list:sql_statement sql_template.format(idid.replace(, ), # 转义单引号以防止SQL语法错误)sql_statements.append(sql_statement)return sql_statementsgenerate_sql GenerateSql() if __name__ __main__:sql_template INSERT INTO zentao.zt_bug (product, title, severity, pri, type,steps, status, openedBy, openedDate, openedBuild,assignedTo, assignedDate, resolvedBy, resolution,resolvedBuild, resolvedDate, closedBy, closedDate,lastEditedBy, lastEditedDate) VALUES (1, {title}, 3, 3, codeerror,{steps},closed, admin, 2024-12-09 17:06:17, trunk,admin, 2024-12-10 16:33:15,admin, fixed, trunk, 2024-12-10 00:00:00,admin, 2024-12-10 00:00:00,admin, 2024-12-10 16:33:15);sql_template_file INSERT INTO zentao.zt_file ( id, pathname, title, extension, objectType, objectID, addedBy, addedDate, downloads, extra, deleted )VALUES( {id}, 202412/{id}.png, image.png, png, , 0, admin, 2024-12-10 00:00:00, 0, , 0 ); # print(type(sql))header {Content-Type: application/json}data {account : admin,password : 123456}data_list get_sqlData.get_sql_data(header,data)# sql generate_sql.generate_sql_bug(sql_template,title_listdata_list[0],step_listdata_list[1])# for i in sql:# print(i)sql generate_sql.generate_sql_bug(sql_template_file,file_id_listdata_list[2])for i in sql:print(i) 5.3 下载图片至本地禅道路径 from concurrent.futures import ThreadPoolExecutor, as_completed from common.read_data import data from get_sql_data import get_sqlData import os import requests from urllib.parse import urlparse, unquote from common.logger import logger from PIL import Image import iodef download_image(url, save_path, id):# 确保目录存在if not os.path.exists(save_path):os.makedirs(save_path)try:token data.load_ini(../config/setting.ini)[token][token]header {token: token}response requests.get(url, headersheader, streamTrue)if response.status_code 200:try:img Image.open(io.BytesIO(response.content))filename f{id}.pngimg img.convert(RGB) # 确保图片模式兼容JPEGfile_path os.path.join(save_path, filename)img.save(file_path, JPEG)logger.info(fDownloaded and saved as JPEG: {url} to {filename})except Exception as e:logger.error(fError processing image from {url}: {e})else:logger.error(fFailed to download image {url})with open(file_path, wb) as file:file.write(response.content)print(fDownloaded: {filename})except Exception as e:print(fFailed to download {url}. Error: {e})def download_images(url_list, save_path, id_list, max_workers5):# 使用线程池并发下载图片with ThreadPoolExecutor(max_workersmax_workers) as executor:futures [executor.submit(download_image, url, save_path, id) for url, id in zip(url_list, id_list)]for future in as_completed(futures):future.result() # 获取结果并处理异常如果有的话if __name__ __main__:header {Content-Type: application/json}json_data {account: admin,password: 123456}res get_sqlData.get_sql_data(header, json_data)id res[2]url_base data.load_ini(../config/setting.ini)[host_Portal_System_Test][api_root_url]url_list [url_base f/file-read-{i}.png for i in id]print(url_list)path rD:\ZenTao\app\zentao\www\data\upload\1\202412# 调用函数下载图片download_images(url_list, path, id_listid)
http://www.hkea.cn/news/14345081/

相关文章:

  • 企业网站作用12306网站是是阿里巴巴做的吗
  • 网站图标ico贵州企业网站
  • 网站设计名称做礼品公司网站的费用
  • 快递物流网站建设开发具备哪些功能廊坊网站搭建
  • 免费申请网站 主机 空间wordpress运行加速
  • 做彩票网站犯法吗长沙网站关键词排名
  • 网站推广途径和要点有哪些wordpress %s
  • 新开传奇网站企业网站哪家公司好
  • 网站建设v5star本地网站做通用会员卡
  • 企业网站管理系统设置网站建设网站结构图
  • 新吁网站建设免费论坛网站大全
  • 手机网站建设服务商全国工商网注册查询网
  • 专业网站制作推荐临漳 网站建设
  • 东莞社保官方网站个人网站要备案么
  • 微信官方网站建设百度网盘网站入口
  • 做网站答辩总结范文浪潮做网站建设吗
  • 自己ip做网站网站没有做301的后果是什么
  • 网站设计公司天津人和动物做的电影网站
  • 建设部网站查不到注册证怎么回事制作网页模板适应不同分辨率
  • 官方网站建设合同玉山电商网站建设
  • 网站建设论文500字万网域名查询官网
  • 网站目录结构头像字体图片制作
  • 北京品牌网站建设做网站 业务流程图
  • 网站建设电销职责南昌网站建设大全
  • 福州企业网站建站系统php论坛源码
  • 湖南建设监理官方网站福建微网站建设公司
  • 站群网站内容昆明企业网站制作公司
  • php网站开发说明文档上海网站建设yes404
  • 做爰全的网站做万词霸屏后网站关键词没有排名
  • 想学编程做网站有好看图片的软件网站模板