Pytest+requests进行接口自动化测试9.0(redis + excal文件的使用)

YOLO26算法固态硬盘识别+训练好的模型+118张数据集+pyqt可视化界面.zip 附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[SSD 2280(SSD 2280)] 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 75 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9014** mAP50-95 | 0.8244 Precision | 0.8682 Recall | 0.8599 train/box_loss | 0.4835 train/cls_loss | 0.8981 val/box_loss | 0.4427 val/cls_loss | 1.3311 【训练过程分析】 训练初始,我在日志里看到 loss 曲线迅速下滑,心情挺放松的。前 20 轮,训练 loss 从初始值 1.5 左右直线下探到 0.5,此时 mAP50 预期从 0.7 提升到 0.85,但实际仅爬升至 0.80,显示模型在快速学习基本特征。从第 21 轮到 50 轮,mAP50 从 0.80 稳步增长到 0.88,但曲线却开始进入平台期,loss 下降缓慢,从 0.5 压缩到 0.45。到了第 75 轮,mAP50 依旧徘徊在 0.88 水平,训练 loss 降至 0.4835,但 val_loss 仅略有降低,稳定在 0.44。这种状况表明模型在后期出现了轻微的资源浪费,未充分挖掘数据中的细节信息。从第 51 轮到第 75 轮,训练曲线显得十分枯燥,仿佛模型进入了一种“稳定但缓慢”的训... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。 立即下载

一、Redis简介

Redis是一个基于内存的 key-value 结构数据库,主要是在内存中保存数据,加速数据访问的。

Redis基本介绍

二、下载Redis

下载工具:Redis Desktop Manager

建立连接

在这里插入图片描述

获取key值

在这里插入图片描述

从单节点服务器中获取数据

在这里插入图片描述

配置文件config.yaml 文件里添加 redis 配置

redis:
  host: 127.0.0.1
  port: 6379
  username:
  password:
  db: 0

在这里插入图片描述

读取 config.yaml 文件中的 redis 配置

    def get_section_redis(self, option):
        """快捷方法:获取redis配置"""
        return self.get('redis', option)

在这里插入图片描述

创建redis连接 与 读取对应key值的数据

class RedisClient:
    """
    从redis中读取,设置相关数据
    """
    def __init__(self):
        self.conf = OperationYaml()
        self.__redis_conf = {
            'host':self.conf.get_section_redis('host'),
            'port':int(self.conf.get_section_redis('port')),
            'username':self.conf.get_section_redis('username'),
            'password':self.conf.get_section_redis('password'),
            'db':self.conf.get_section_redis('db'),
        }
        try:
            logs.info(f'连接到Redis服务器:ip:{self.__redis_conf["host"]}')
            pool = redis.ConnectionPool(**self.__redis_conf)
            self.redis_cluster = redis.Redis(connection_pool=pool)
        except Exception as e:
            logs.error(f'redis连接失败,{e}')

    @classmethod
    def redis_except(self,e):
        if 'MOVED' in str(e):
            logs.error(f'请检查Redis是否使用了集群模式或者主从复制的情况,数据被迁移到了另外一个Redis实例上:{e}')
        else:
            logs.error(f'Redis Error:{e}')

    def get(self,key):
        """
        获取Redis里面的数据
        :param key: Redis里面的键
        :return:
        """
        try:
            value = self.redis_cluster.get(key)
            if isinstance(value, bytes):
                return value.decode('utf-8')
            return value
        except Exception as e:
            self.redis_except(e)
            logs.error(f"从Redis中获取[{e}]失败,失败原因:{e}")
            raise

    def set(self,key,value,ex=None):
        """
        设置Redis的值
        :param key: Redis
        :param value: 需要设置的内容
        :param ex: 过期时间,单位秒(s)
        :return:
        """
        try:
            self.redis_cluster.set(name=key, value=value, ex=ex)
        except Exception as e:
            logs.redis_except(e)

从集群环境中获取数据

在这里插入图片描述

redis:
  startup_nodes: 172.17.33.214:6479,172.17.33.214:6380
  host: 127.0.0.1
  port: 6379
  username:
  password:
  db: 0

集群读取

class RedisClient:
    """
    从redis中读取,设置相关数据
    """
    def __init__(self):
        self.conf = OperationYaml()
        self.__redis_conf = {
            'host':self.conf.get_section_redis('host'),
            'port':int(self.conf.get_section_redis('port')),
            'username':self.conf.get_section_redis('username'),
            'password':self.conf.get_section_redis('password'),
            'db':self.conf.get_section_redis('db'),
        }
        redis_nodes_str = self.conf.get_section_redis('startup_nodes')
        self.nodes_list = []
        if redis_nodes_str:
            nodes_str_list = redis_nodes_str.split(',')
            print(nodes_str_list)
            for node_str in nodes_str_list:
                host, port = node_str.split(':')
                node_data = {'host': 'host', 'port': 'port'}
                self.nodes_list.append(node_data)
            # startup_nodes: 集群的格式[{'host':'host','port':'port'},{'host2':'host2','port2':'port2'},{},....]
            self.redis_cluster = RedisCluster(startup_nodes=self.nodes_list)
            logs.info(f"连接到Redis集群服务,host:{redis_nodes_str}")
        elif self.__redis_conf['host'] and self.__redis_conf['port']:
            try:
                logs.info(f'连接到Redis服务器:ip:{self.__redis_conf["host"]}')
                pool = redis.ConnectionPool(**self.__redis_conf)
                self.redis_cluster = redis.Redis(connection_pool=pool)
            except Exception as e:
                logs.error(f'redis连接失败,{e}')

pycharm向git远程仓库提交、推送和pull代码

在这里插入图片描述

在 git 里克隆 url 地址

在这里插入图片描述

点击提交,将更改的项目推送上去
在这里插入图片描述

提交并推送,在文字描述处填写此次更改内容

在这里插入图片描述

三、excel文件的使用

Python 自动化测试中 Excel 数据驱动实战:手把手教你封装一个 HandleExcel 类


  • 目标:

  • 读取 Excel 表格数据

  • 获取行数、列数、单元格值

  • 写入数据回 Excel

  • 支持配置化路径管理


  • 技术栈:
库名作用
xlrd读取 .xls 文件(注意:不支持 .xlsx)
xlwt写入 .xls 文件
xlutils.copy在保留原格式的基础上复制并修改 Excel

安装命令:

pip install xlrd==1.2.0 xlwt xlutils

目录结构:

在这里插入图片描述

  • 配置文件 setting.py :

此处存放全局路径

import os
# 项目根目录
DIR_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

FILE_PATH = {
    'EXCEL': os.path.join(DIR_path, r'data\新建 XLS 工作表.xls')
}
  • xls文件:

在这里插入图片描述

  • 核心代码解析:HandleExcel 类:

1. 导入依赖

import xlrd
import xlwt
from xlutils.copy import copy
from conf import setting
import os
from common.recordlog import logs

2. 初始化方法 init

调用 xls_obj( ) 加载 Excel 表格对象

def __init__(self, file_path=None):
    if file_path is not None:
        self.file_path = file_path
    else:
        self.file_path = setting.FILE_PATH['EXCEL']
    
    self.__global_table = self.xls_obj()

3. 加载 Excel 表格对象 xls_obj()

使用 os.path.splitext() 判断文件扩展名;
formatting_info=True:保留原有样式(字体、颜色等),便于后续写入时保持美观;
sheet_by_index(0):获取第一个工作表(索引从 0 开始);
不支持 .xlsx,遇到则报错并记录日志。

def xls_obj(self):
    if os.path.splitext(self.file_path)[-1] != '.xlsx':
        obj = xlrd.open_workbook(self.file_path, formatting_info=True)
        xls_obj = obj.sheet_by_index(0)  # 取第一个 sheet
        return xls_obj
    else:
        logs.error('Excel文件必须是.xls格式!')

4. 常用读取方法

获取行列数,nrows 和 ncols 是 xlrd 提供的属性,直接调用即可

def get_cols(self):
    """获取Excel的总列数"""
    return self.__global_table.ncols

def get_rows(self):
    """获取Excel的总行数"""
    return self.__global_table.nrows

获取单个单元格值,索引从 0 开始,例如 (0,0) 表示 A1 单元格

def get_cell_value(self, row, col):
    return self.__global_table.cell_value(row, col)

获取一整行/列数据,返回 list 类型,可用于参数化测试

def get_each_line(self, row):
    return self.__global_table.row_values(row)

def get_each_column(self, col):
    return self.__global_table.col_values(col)

5. 写入数据方法 write_xls_value

def write_xls_value(self, row, col, value):
    try:
        init_table = xlrd.open_workbook(self.file_path, formatting_info=True)
        copy_table = copy(init_table)
        sheet = copy_table.get_sheet(0)  # 修改第0个工作表
        sheet.write(row, col, value)
        copy_table.save(self.file_path)
    except PermissionError:
        logs.error('请关闭Excel文件再操作!')
        exit()

输出结果:

表格总行数: 6
表格总列数: 8
第一行第一列: 接口名称
B1单元格内容: /dar/user/login
【农业信息化】基于微服务架构的育种数据管理系统设计与实现:SpringBoot与Vue框架在智能化农业数据管理中的应用 内容概要:本文设计并实现了一套基于微服务架构的育种数据管理系统,旨在解决传统育种数据管理中存在的信息孤岛、数据格式不统一、系统扩展性差和智能化水平低等问题。系统采用Java语言开发,后端基于SpringBoot框架,结合Spring Cloud实现微服务架构,使用MySQL作为数据存储,前端采用Vue框架构建用户界面。系统功能模块包括用户管理、数据概览、数据采集、数据管理、数据分析和公共支撑模块,支持多源异构数据的采集、清洗、存储、分析与可视化展示。通过引入K-means聚类算法实现育种数据的智能分析,提升品种筛选效率,并通过微服务拆分、API网关、服务注册与配置管理(Nacos)、操作日志追溯、系统监控等技术手段保障系统的可扩展性、可维护性与稳定性。系统经过功能测试验证,具备良好的实用性与可靠性。; 适合人群:具备一定软件开发基础,熟悉Java、SpringBoot、Vue和MySQL技术栈的开发人员或农业信息化相关专业的研究人员;从事农业育种信息化系统设计与实施的技术人员。; 使用场景及目标:①应用于农业科研机构、育种企业等单位,实现育种数据的标准化、智能化管理;②解决育种过程中数据分散、共享困难、分析手段落后等问题,提升育种效率与科研创新能力;③为后续引入AI深度分析、高并发优化和云端部署提供可扩展的技术基础。; 阅读建议:本文适合作为农业大数据管理系统开发的实践参考,建议结合系统架构图、数据库设计和核心功能实现部分进行深入研读,重点关注微服务拆分逻辑、前后端交互设计、数据清洗流程及智能分析模块的算法实现,以便在类似项目中进行技术迁移与优化。 立即下载

相关推荐

政府科技管理者在推动科技成果转化过程中,如何解决科研成果与市场需求脱节的问题?.docx

政府科技管理者在推动科技成果转化过程中,如何解决科研成果与市场需求脱节的问题?

优化接口自动化框架--接口自动化中redis的使用实战!!

redis中间件作为存放接口自动化用例的全局变量,实现apifox、postman存放全局变量的功能,快速存取,可以实现场景接口自动化的效果

weixin_59218470的博客 1007

科技中介服务机构如何实现技术需求的智能挖掘与精准推送?.docx

科技中介服务机构如何实现技术需求的智能挖掘与精准推送?

Pytest 自动化测试框架

pip安装: 测试安装成功: 检查安装版本: Pytest 示例 Pytest编写规则:test_example.py 执行测试: 执行结果: 备注: 指定一些测试用例测试运行,可以使用-k模糊匹配 通过pytest.mark.skip()或者pytest.makr.skipif()条件表达式,跳过指定的测试用例 通过pytest.raises()捕获测试用例可能抛出的异常 预先知道测试用例会失败,但是不想跳过,需要显示提示信息,使用pytest.mark.xfail() 对测试用

AI大模型的博客 8575

隔离型全桥LLC谐振变化器建模及参数设计资料【仿真+设计报告+计算书】

内容概要:本文档系统性地提供了隔离型全桥LLC谐振变换器的建模与参数设计全套资料,涵盖Simulink、Plecs和PSIM等多种主流仿真平台的实现模型,配套完整的闭环控制设计报告与Mathcad计算书。内容深入聚焦LLC谐振变换器的核心技术环节,包括软开关实现机制、变频与移相混合控制策略、闭环稳定性分析、谐振参数优化设计及软启动过程建模等关键方面。资料不仅包含典型拓扑结构的仿真验证,还整合了多相交错、双向CLLC、恒压恒流双闭环等进阶控制方案,辅以详细的数学推导与工程设计流程,全面支撑从理论分析到实际电源系统开发的全过程。; 适合人群:面向具备电力电子、自动化或电气工程等相关专业背景,从事开关电源、新能源变换系统、高效率DC-DC转换器研发的工程师、高校研究生及科研人员。; 使用场景及目标:① 深入掌握全桥LLC谐振变换器的工作原理与精确建模方法;② 学习并实践基于多平台的闭环控制系统仿真与动态性能优化;③ 借助Mathcad计算书完成实际工程中谐振腔参数、磁性元件与开关频率的系统化设计;④ 支持高水平科研论文撰写、学位课题研究或工业级电源产品的开发与验证。; 阅读建议:建议结合仿真模型、设计报告与计算书三位一体同步研习,重点剖析控制策略的实现逻辑与参数敏感性分析,动手运行并修改仿真文件以深入理解系统动态响应,同时可参照文档中丰富的电力电子拓扑案例进行横向对比与技术拓展。

全桥LLC谐振(变频+移相混合控制)变换器闭环仿真模型(Simulink仿真实现)

内容概要:本文详细介绍了基于Simulink平台构建的全桥LLC谐振变换器闭环仿真模型,采用变频与移相混合控制策略,实现高效电能转换与系统稳定运行。该模型涵盖主电路建模、闭环控制环路设计、关键参数整定及动态响应分析等核心环节,重点突出通过闭环反馈机制提升输出精度、负载适应能力与系统鲁棒性。同时,模型充分体现了软开关技术(如零电压开关ZVS)的实现原理,有效降低开关损耗,提高电源效率。配套提供的参数设计报告与仿真文件有助于深入理解LLC谐振变换器的工作机理及其在实际工程中的设计流程与优化方法。; 适合人群:适用于电力电子、电气工程及其自动化等相关领域的高校本科生、研究生,以及从事高频开关电源、新能源变换器研发的工程技术人员,具备电路理论基础和Simulink仿真经验者更佳。; 使用场景及目标:①掌握全桥LLC谐振变换器的建模与闭环仿真方法;②深入理解变频控制与移相控制相结合的混合调制策略在高效率电源中的应用优势;③用于科研项目、学位论文或毕业设计中的高性能DC-DC变换器研究;④作为教学案例展示高频软开关电源的动态特性与闭环控制实现方式; 阅读建议:建议结合所提供的设计报告与仿真模型同步操作,逐步调整控制器参数(如PI参数、频率范围、移相角等),观察系统在不同负载与输入条件下的动态响应,从而深化对谐振频率调节、软开关实现条件、闭环稳定性判据等关键技术要点的理解。

Pytest调用和使用

文章目录从命令行通过python解释器调用测试退出代码获取有关版本,选项名称,环境变量的帮助在第一次或n次失败后停止指定测试/选择测试修改python回溯打印详细的总结汇报在失败时丢弃到pdb(python调试器)在测试开始时删除pdb设置断点使用内置断点功能分析测试执行持续时间创建JUint xml格式文件创建结果日志格式文件将测试报告发送到在线的pastebin服务禁用插件从python代码中...

xiadanying的博客 2940

基于变频控制的多相交错LLC谐振变换器闭环仿真(Simulink仿真实现)

内容概要:本文围绕“Plecs全桥LLC谐振变换器仿真模型”展开,系统介绍了基于Simulink和MATLAB平台实现的电力电子系统建模仿真资源,重点聚焦于隔离型全桥LLC谐振变换器的闭环控制设计与多相交错并联技术。文档详细涵盖了变频控制、软启动、双向充放电、多相交错并联等多种应用场景,并提供了从开环到闭环的完整控制系统设计方案,尤其强调LLC谐振变换器在新能源、储能、电动汽车等领域的高频DC-DC变换应用。此外,还整合了智能优化算法、机器学习、信号处理、电力系统管理等多个前沿科研方向的技术支持内容,形成综合性仿真资源库,助力科研人员高效开展创新研究。; 适合人群:具备电力电子、自动控制或电气工程等相关专业背景,从事高频变换器设计、新能源系统开发或电力电子仿真的高校研究生及科研人员。; 使用场景及目标:①用于LLC谐振变换器的科研仿真与教学演示;②为电力电子系统设计提供闭环控制策略参考;③辅助开展新能源、储能、电动汽车等领域中高频DC-DC变换器的开发与优化工作;④支撑智能优化、机器学习、路径规划等跨学科科研项目的仿真验证。; 阅读建议:建议结合文中提供的仿真链接与代码资源进行实践操作,优先按照目录结构系统学习核心案例,重点关注LLC变换器的建模方法与控制策略实现细节,同时可拓展参考其他相关技术领域的仿真模型以增强综合应用能力。

python连接redis并执行操作demo

from redis import ConnectionPool,Redis pool = ConnectionPool(host='××.××.××.××',port='××××',password='×××',decode_responses=True,db=0) r=Redis(connection_pool=pool) # r.set('name', 'Bob') # a = r.hk...

test的博客 429

垂直起降飞行器的设计与控制:固定翼和四旋翼整合自主飞行研究(Matlab代码实现)

内容概要:本文档标题为《Plecs全桥LLC谐振变换器仿真模型.txt》,但其实际内容并非聚焦于Plecs平台下全桥LLC谐振变换器的详细建模与仿真,而是广泛汇集了基于Matlab/Simulink、PSCAD等工具的多个电力电子、自动控制与新能源系统仿真案例。内容涵盖风储VSG系统、电励磁同步电机三阶段运行仿真、LLC谐振变换器控制、微电网优化、无人机路径规划、卡尔曼滤波状态估计、光伏与风电功率预测、多智能体协同控制等多个研究方向,尤其涉及大量优化算法(如PSO、GA、NSGA-II、MOWAA等)在工程中的应用。尽管提及“全桥LLC谐振变换器”及相关控制策略(如变频控制、软启动、双闭环控制),但缺乏Plecs环境下的具体实现细节,整体更倾向于作为科研资源索引与项目清单,供读者参考选题与技术路线。; 适合人群:具备电力电子、自动化、电气工程或控制科学背景,熟悉Matlab/Simulink、PSCAD等仿真工具,正在从事新能源系统、电机控制、智能优化或路径规划等方向研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①为科研项目选题和技术方案设计提供广泛的技术参考与灵感;②获取电力系统、控制算法、优化调度等领域的仿真思路与代码资源;③了解LLC变换器、VSG、无人机路径规划、微电网优化等前沿方向的研究现状与实现方法。; 阅读建议:此文档本质上是资源目录而非系统教程,建议读者结合自身研究方向,从中筛选关键技术关键词,进一步查找相关文献或配套代码进行深入学习与实践,以实现对特定系统建模与仿真的真正掌握。

三电平Buck直流变换器双闭环、单闭环、开环仿真【附参考文献】(Simulink仿真实现)

内容概要:本文档聚焦于三电平Buck直流变换器的仿真研究,系统性地提供了开环、单闭环与双闭环控制策略的Simulink仿真实现方案,深入剖析了不同控制模式下变换器的动态响应特性与控制性能。文档不仅包含了完整的仿真模型构建过程,还配套提供了参考文献和技术说明,强化了理论分析与工程实践的深度融合,有助于科研人员全面掌握多电平变换器的建模方法与控制机理,尤其适用于电力电子系统在新能源、智能电网等领域的应用研究。; 适合人群:面向具备电力电子、自动控制理论或电气工程等相关专业背景,正在从事科研、工程开发或教学工作的研究生、工程师及高校教师。; 使用场景及目标:①掌握三电平Buck变换器在开环、单闭环与双闭环控制下的建模流程与仿真技巧;②对比分析不同控制策略对系统稳定性、动态响应速度及抗干扰能力的影响;③为撰写学术论文、完成课题研究或开展实际工程项目提供可靠的仿真依据与技术支持。; 阅读建议:建议读者在Simulink环境中亲手搭建仿真模型,逐步调试控制器参数,观察并记录系统的瞬态与稳态响应,结合文档所附参考文献深化对控制理论的理解,从而有效提升科研创新能力与工程实践水平。

windows自动连接无线网工具

手机开启连接特定蓝牙就自动开热点,windows检测手机蓝牙,检测到后连接蓝牙触发手机开热点,电脑就能自动连接手机热点,实现手机在电脑旁边时电脑能自动连接手机热点。

高校技术转移办公室人员如何提升科研成果的市场推广与转化成功率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

区间多目标优化算法IP-MOEA研究(Matlab代码实现)

内容概要:本文档名为“Plecs全桥LLC谐振变换器仿真模型”,实则是一份综合性极强的科研资源目录,集中展示了电力电子、自动化、电气工程等多个工程技术领域的仿真案例与研究资源。核心内容虽提及“隔离型全桥LLC谐振变换器建模及参数设计”,并列出相关仿真模型,如LLC开环/闭环控制、软启动设计、参数优化等,但整体内容更偏向于资源汇总,涵盖了Matlab、Simulink、PLECS、PSCAD等多种仿真工具在光伏功率预测、电动汽车控制、无人机路径规划、电力系统优化调度、状态估计、信号处理等方向的应用。文档强调借助成熟算法与仿真平台解决复杂工程问题,体现了多学科交叉融合的特点。; 适合人群:具备电力电子、自动化、电气工程、控制科学或相关专业背景,熟悉Matlab/Simulink/PLECS等仿真工具,从事科研或技术研发工作1-3年的工程师、研究生及高年级本科生。; 使用场景及目标:① 学习并掌握全桥LLC谐振变换器的工作原理、系统建模、闭环控制策略及软启动技术;② 研究电力电子变换器的参数优化、混合能源系统调度、智能优化算法在工程中的应用;③ 借鉴丰富的科研案例,为自身的课题研究、毕业设计或工程项目提供仿真模型参考和技术实现思路。; 阅读建议:此文档本质为科研资源索引与案例集合,建议读者首先明确自身研究方向,然后从庞杂的条目中筛选出高度相关的主题,结合所提供的仿真模型、代码、参考文献进行针对性学习与实践,重点关注具体模型的实现逻辑、算法设计与参数配置细节。

杰理蓝牙AC696X开发实战:自定义蓝牙名称与提示音配置指南

本文详细介绍了杰理AC696X蓝牙芯片开发中自定义蓝牙名称与提示音配置的完整实战指南。文章从SDK工具定位入手,逐步讲解如何通过配置工具修改蓝牙名称,并重点阐述了替换提示音的正确步骤与音频文件(如WAV格式、16kHz采样率)的详细参数要求,最后指导如何生成并验证最终固件,帮助开发者快速实现个性化设备定制。

weixin_29161719的博客 560

MATLAB功率谱函数psd与pwelch的使用

在网上看到 clear; Fs=1000; n=0:1/Fs:1; y=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n)); Nfft=1000; window=hanning(100); noverlap=20; dflag='none'; [Pxx,f]=psd(y,Nfft,Fs,window,noverlap); figure plot(f,10*log10(Pxx)); xlabel('frequency/Hz');ylab

qq_41687938的博客 2万+
上一篇: Pytest+requests进行接口自动化测试8.0(Allure进阶 + 文件上传接口 + 单接口多用例)
下一篇: 手把手带你实战YOLOv8 - 从环境搭建到目标检测(含常见问题解决)
know__ledge
博客等级 码龄5年 77粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值