自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1193)
  • 资源 (11)
  • 收藏
  • 关注

原创 Spring Boot(八十一):Sa-Token快速实现API接口签名安全校验

不限制请求的参数数量,方便组织业务需求代码。自动补全 nonce、timestamp 参数,省时省力。自动构建签名,并序列化参数为字符串。一句代码完成 nonce、timestamp、sign 的校验,防伪造请求调用、防参数篡改、防重放攻击。

2024-07-18 20:04:15 1241

转载 java面试题:为什么MySQL单表不能超过2000W条数据?

在MySQL数据库中,单表不能超过2000W(即2亿)条数据的限制是一项常见的规定,它引起了许多开发者和数据库管理员的关注。这个限制涉及到多个方面,包括存储引擎的限制、性能考虑以及数据库设计的最佳实践等。在本文中,我们将深入探讨这个问题,并解释为什么会有这样的限制。

2024-07-17 16:39:25 10

原创 python进阶(6):魔术方法篇(2)

_repr__是Python类中的一个特殊方法,全称为“representation”,即表示法。当你在交互式环境中直接输入一个对象的名称,或者使用repr()函数时,Python就会调用这个方法来返回一个字符串,该字符串旨在提供对象的“官方”表示形式,它应该是一段可读性强且尽可能明确地表示对象内容的代码片段,理论上,这个字符串应该是可以用来重新创建原始对象的。当我们打印my_book对象时,输出的是一个构造该对象的字符串,这正是__repr__所返回的内容。不使用__repr__方法时。

2024-07-17 14:55:43 302

原创 python基础篇(12):继承

类继承允许一个派生类(子类)继承一个或多个基类(父类)的方法和属性(不含私有)。上面代码中的pass是占位语句,用来保证函数(方法)或类定义的完整性,表示无内容,空的意思。注意:只可以在子类内部调用父类的同名成员,子类的实体类对象调用默认是调用子类复写的。多个父类中,如果有同名的成员,那么默认以继承顺序(从左到右)为优先级。一旦复写父类成员,那么类对象调用成员的时候,就会调用复写后的新成员。Python的类之间也支持多继承,即一个类,可以继承多个父类。即:先继承的保留,后继承的被覆盖。

2024-07-17 11:57:12 265

原创 python基础篇(11):封装

通俗理解:封装,简而言之,就是把数据(变量)和操作这些数据的方法(函数)打包在一起,形成一个“黑箱”,外界只能通过预设的接口(方法)来访问或修改这个“黑箱”里的内容,而无需知道其内部是如何工作的。专业术语:封装是面向对象编程(OOP)的四大基本原则之一,它通过隐藏对象的属性和实现细节,仅对外公开接口来控制外部对对象的访问。

2024-07-17 10:56:05 565

原创 python库(13):Tablib库简化数据处理

数据处理是一个常见且重要的任务。无论是数据科学、机器学习,还是日常数据分析,都需要处理和管理大量的数据。然而,标准库中的工具有时显得不够直观和简便。这时,我们可以借助第三方库来简化数据处理流程。Tablib 就是这样一个强大的数据处理库,它提供了一套简单易用的 API 来处理各种数据格式。Tablib 主要用于处理表格数据,并且支持多种数据格式的导入和导出,包括 CSV、Excel、JSON、YAML 等。Tablib 的核心是 Dataset 对象,它类似于一个电子表格,包含行和列的结构化数据。

2024-07-13 00:44:17 513

原创 python库(12):Requests库实现HTTP请求

虽然还有其他HTTP库,但Requests库以其简洁的API和人性化的设计脱颖而出。它隐藏了HTTP协议的复杂性,让开发者可以专注于业务逻辑,而不是底层的网络细节。此外,Requests库支持Python 2.7和3.4+版本,这使得它能够覆盖广泛的用户群体。Requests是一个极为流行的HTTP库,它允许你发送各种类型的HTTP请求。Requests库还支持会话(Session)的使用,这可以帮助你维持某些参数和Cookies跨越多个请求。在发送请求时,可能会遇到各种网络问题或其他异常。

2024-07-12 14:48:18 381

原创 python库(11):Box库简化字典和对象之间的转换

Box是一个Python库,它提供了一种将数据封装在字典和列表中的方式,同时提供了一些额外的功能,比如数据验证、默认值设置等。这使得Box库非常适合用于配置管理、数据传输对象(DTO)的创建,以及任何需要将数据结构化的场景。

2024-07-12 13:19:45 294

原创 python库(10):SpaCy库实现NLP处理

自然语言处理(NLP)是人工智能领域中一个重要的分支。它旨在使计算机能够理解、解释和生成人类语言。Python中的SpaCy库提供了丰富的功能和工具,SpaCy是一个开源的软件库,用于处理和操作自然语言文本,可以帮助我们轻松进行各种NLP任务。相比于其他NLP库,SpaCy的特点在于其高效性和易用性。它专为处理大规模文本数据而设计,拥有快速的管道处理能力,使得它在实际项目中非常实用。

2024-07-11 16:30:41 551

原创 python进阶(5):魔术方法篇(1)

之前使用的__init__ 构造方法,是Python类内置的方法之一。这些内置的类方法,各自有各自特殊的功能,这些内置方法我们称之为:魔术方法。

2024-07-11 15:21:25 407

原创 python基础篇(10):类、对象与构造方法

1.1 类使用语法 class是关键字,表示要定义类了 类的属性,即定义在类中的变量(成员变量) 类的行为,即定义在类中的函数(成员方法)1.2 创建类对象的语法1.3 成员变量和成员方法定义成员变量和方法使用成员变量和成员方法可以看出,类中:其中:1.4 成员方法的定义语法在类中定义成员方法和定义函数基本一致,但仍有细微区别:可以看到,在方法定义的参数列表中,有一个:self关键字self关键字是成员方法定义的时候,必须填写的。注意:self关键字,尽管在参

2024-07-11 11:18:54 178

原创 Spring Boot(八十):Tesseract实现图片文字自动识别

下载训练好的Tesseract模型文件(.traineddata文件),以支持车牌号码识别。从 GitHub仓库(https://github.com/tesseract-ocr/tessdata)以获取最新版本的 .traineddata 文件,也可以使用https://raw.githubusercontent.com/tesseract-ocr/tessdata/main/chi_sim.traineddata 直接下载。创建Spring Boot控制器,处理上传和识别请求。

2024-07-10 21:31:33 1002

原创 python库(9):prettytable库快速实现ASCII表格

下面介绍一个快速制作ASCII表格库——prettytable,可以方便地制作简单表格。

2024-07-10 11:48:38 312

原创 python库(8):re库实现字符串处理

Python 的re库是一个功能强大的正则表达式模块,它允许用户执行各种复杂的字符串匹配和处理任务。搜索:re.search() 用于搜索字符串中第一次出现的模式。匹配:re.match() 从字符串的开始位置匹配模式。查找:re.findall() 返回字符串中所有匹配的子串。分组:使用圆括号定义的分组,可以在搜索结果中单独提取。替换:re.sub() 用于替换字符串中的匹配项。分割:re.split() 根据模式分割字符串。

2024-07-09 10:42:47 331

原创 python基础篇(10):自定义包

从物理上看,包就是一个文件夹,在该文件夹下包含了一个 __init__.py 文件,该文件夹可用于包含多个模块文件,从逻辑上看,包的本质依然是模块包的作用:当我们的模块文件越来越多时,包可以帮助我们管理这些模块, 包的作用就是包含多个模块,但包的本质依然是模块。

2024-07-08 23:03:29 348

原创 python基础篇(9):模块

Python 模块(Module),是一个 Python 文件,以 .py 结尾. 模块能定义函数,类和变量,模块里也能包含可执行的代码.模块的作用: python中有很多各种不同的模块, 每一个模块都可以帮助我们快速的实现一些功能, 比如实现和时间相关的功能就可以使用time模块,我们可以认为一个模块就是一个工具包, 每一个工具包中都有各种不同的工具供我们使用进而实现各种不同的功能.简而言之,模块就是一个Python文件,里面有类、函数、变量等,我们可以拿过来用(导入模块去使用)

2024-07-08 22:20:52 545

原创 python库(7):pymysql库实现mysql操作

在Python中,使用第三方库:pymysql 来完成对MySQL数据库的操作。

2024-07-08 16:27:54 196

原创 Spring Boot(七十九):SprngBoot整合Apache tika做文件类型检测

下面我们介绍Apache tika实现文件类型检测。

2024-07-08 12:05:08 431

原创 python基础篇(8):字符串常用处理汇总

使用center()方法将字符串居中对齐,并使用指定的字符填充两侧。使用upper()和lower()方法将字符串转换为大写或小写。使用ljust()方法将字符串左对齐,并使用指定的字符填充右侧。使用rjust()方法将字符串右对齐,并使用指定的字符填充左侧。使用replace()方法将字符串中的指定子串替换为新的子串。使用startswith()方法判断字符串是否以指定子串开头。使用capitalize()方法将字符串的首字母转换为大写。使用split()方法将字符串按照指定的分隔符进行分割。

2024-07-07 16:47:27 130

原创 python库(6):Pygments库

在软件开发和文档编写中,代码的可读性是至关重要的一环。无论是在博客文章、技术文档还是教程中,通过代码高亮可以使程序代码更加清晰和易于理解。而在Python世界中,Pygments库就是这样一个强大的工具,它能够将各种编程语言的代码转换为具有色彩区分的格式化输出。Pygments不仅支持基本的语法高亮,还允许用户通过自定义样式和输出格式来满足各种需求。例如,可以通过修改TerminalFormatter的参数来改变输出的颜色主题和显示格式。

2024-07-07 15:14:44 493 2

原创 python基础篇(8):异常处理

有时标准异常不足以描述特定的错误情况,可以通过创建自定义异常类来定义新的异常类型"""自定义异常类"""# 使用自定义异常try:print(ce)

2024-07-07 12:27:22 808

原创 python进阶(4):Python 脚本文件重启自身进程

现实环境中,正在运行的 Python 脚本程序需要在内部进行重新启动。这不是简单的关闭程序再运行,需要从程序内部重新运行该程序。

2024-07-06 16:01:33 419

转载 水库水位和库容的关系

水库在汛期允许兴利蓄水的上限水位,也是水库在汛期防洪运用时的起调水位,称防洪限制水位。水库在正常运用情况下,为满足兴利要求在供水期开始时应蓄到的水位,称正常蓄水位,又称正常高水位、兴利水位,或设计蓄水位。它决定水库的规模、效益和调节方式,也在很大程度上决定水工建筑物的尺寸、型式和水库的淹没损失,是水库最重要的一项特征水位。水库遇到大坝的校核洪水时,经水库调洪后,在坝前达到的最高水位,称校核洪水位。水库遇到下游防护对象的设计标准洪水时,在坝前达到的最高水位,称防洪高水位。死水位以下的库容称为死库容。

2024-07-06 03:15:32 32

原创 python库(5):Psutil库实现系统和硬件监控工具

psutil(process and system utilities)是一个跨平台库,用于检索运行中进程和系统利用率(包括 CPU、内存、磁盘、网络等)的信息,可以提供丰富的系统监控功能。

2024-07-06 02:15:47 596

原创 python库(4):jsondiff库

简单易用:提供简洁的 API,用于比较和处理 JSON 对象的差异。支持多种差异格式:支持合并差异、集合差异和文本差异等多种格式。高性能:采用高效的算法,能够快速处理大规模 JSON 数据的比较。可定制:允许用户自定义差异的格式和处理方式,满足不同应用场景的需求。与标准 JSON 兼容:生成的差异数据与标准 JSON 格式兼容,便于存储和传输。

2024-07-04 22:46:54 230

原创 python库(3):Cerberus库

Cerberus 是一个Python数据验证库,设计用于验证数据结构的有效性和一致性。它提供了一种简单而强大的方式来定义和应用验证规则,特别适用于处理用户输入的验证、配置文件的检查以及API的参数验证等场景。下面将详细介绍 Cerberus 的特点、使用方法以及一些示例。

2024-07-04 21:39:42 497

原创 python库(2):Passlib库

Passlib库就是一个强大的工具,专门用于密码的安全存储和验证。本文将介绍Passlib库的基本概念、功能和使用方法,帮助更好地理解和应用密码安全技术。Passlib是一个用于密码加密、哈希和验证的Python库,它提供了多种密码哈希算法和安全存储方法的实现。Passlib的设计目标是提供简单易用的API,同时保证密码的安全性,抵御常见的密码攻击如彩虹表攻击、暴力破解等。它支持的哈希算法包括但不限于SHA-256、SHA-512、bcrypt、PBKDF2等,这些算法都是经过广泛认可和安全验证的。

2024-07-04 17:35:58 300

原创 python库(1):Nuitka库

Nuitka是一个 Python 解释器的替代品,支持CPython提供的代码,可编译 Python 代码到 C++ 程序,并使用 libpython 来执行这些代码,就像 CPython 一样。这让你可以在没有安装 Python 的环境中运行 Python 程序,也可能提升执行效率。项目地址:https://github.com/Nuitka/Nuitka。

2024-07-03 17:26:10 544

原创 python进阶(3):文件操作

此时的`f`是`open`函数的文件对象,对象是Python中一种特殊的数据类型,拥有属性和方法,可以使用对象.属性或对象.方法对其进行访问,后续面向对象课程会给大家进行详细的介绍。readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。在Python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件,语法如下。文件读取完成后,要使用文件对象.close()方法关闭文件对象,否则文件会被一直占用。如果该文件不存在,创建新文件。

2024-07-01 22:09:47 434

原创 python进阶(2):pyecharts使用

Echarts 是个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可. 而 Python 是门富有表达力的语言,很适合用于数据处理. 当数据分析遇上数据可视化时pyecharts 诞生了。

2024-07-01 15:12:08 208

原创 python进阶(1):json的使用

JSON是一种轻量级的数据交互格式。可以按照JSON指定的格式去组织和封装数据。JSON本质上是一个带有特定格式的字符串。主要功能:json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互. 类似于:国际通用语言-英语中国56个民族不同地区的通用语言-普通话。

2024-07-01 11:19:38 261

原创 JVM(14):虚拟机性能分析和故障解决工具之内存分析和线程分析

​ 应用程序启动后,性能分析工具开始收集各种运行时数据,其中一些数据直接显示在监视视图中,而另外大部分数据被保存在内部,直到用户要求获取快照,基于这些保存的数据的统计信息才被显示出来。​内存性能分析:内存性能分析的主要目的是通过统计内存使用情况检测可能存在的内存泄露问题及确定优化内存使用的方向。​ 内存快照:主要包含了内存的分配和使用情况、载入的所有类、存在的对象信息及对象间的引用关系等。​ Java 转储:JVM 内部生成的格式化后的数据,包括线程信息,类的加载信息以及堆的统计数据。通常也用于检测死锁。

2024-06-30 19:06:52 250

原创 JVM(13):虚拟机性能分析和故障解决工具之Visual VM

test1();i < 100;i++) {//5M2.1 在控制台输入:jvisualvm执行即可;2.2 安装插件​ (1) 从主菜单中选择“工具”>“插件”;(2) 在“可用插件”标签中,选中该插件的“安装”复选框。单击“安装”;​(3) 逐步完成插件安装程序。当然这边不需要安装,大家根据正式环境需要进行安装。2.3 默认插件(1)概述(Overview)​ 程序的基本信息和启动参数、环境变量等等;(2)监视(Monitor)

2024-06-30 18:47:51 447

原创 JVM(12):虚拟机性能分析和故障解决工具之JConsole

在VM摘要页面,JConsole 显示了当前应用程序的运行环境。包括虚拟机类型、版本、堆信息以及虚拟机参数等。相当于jinfo命令。

2024-06-30 16:26:30 592

原创 JVM(11):虚拟机性能分析和故障解决工具之jstack工具

线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、长时间等待外部资源等。线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息.​ 5.在线程快照中找到指定的线程,并分析代码。第一个参数:options。

2024-06-26 22:30:32 419

原创 MySQL:某个ip连接mysql失败次数过多,导致ip锁定

某个ip连接mysql失败次数过多,然后mysql这边自带的保护机制就将ip进行了封禁。这个时候有两个解决方法(1)修改配置文件,重启服务(2)使用命令手动解锁。

2024-06-26 14:31:42 449 1

原创 python基础篇(7):函数进阶知识点

缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用).传进的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组(tuple),args是元组类型,这就是位置传递。参数是“键=值”形式的形式的情况下, 所有的“键=值”都会被kwargs接受, 同时会根据“键=值”组成字典.注意:函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序。

2024-06-26 10:19:50 218

原创 python基础篇(6):global关键字

未使用global关键字时,num变量经过test_b()函数后,值未发生变化,使用global关键字时,num变量经过test_b()函数后,值发生变化。使用 global关键字 可以在函数内部声明变量为全局变量。

2024-06-25 17:50:32 311

原创 python基础篇(5):None类型

Python中有一个特殊的字面量:None,其类型是:None作为一个特殊的字面量,用于表示:空、无意义,其有非常多的应用场景。函数返回的None,就表示,这个函数没有返回什么有意义的内容。一般用于在函数中主动返回None,配合if判断做相关处理。定义变量,但暂时不需要变量有具体值,可以用None来代替。无返回值的函数,实际上就是返回了:None这个字面量。在if判断中,None等同于False。None表示:空的、无实际意义的意思。也就是返回了空的意思。

2024-06-25 17:18:57 292

转载 智慧水利体系“2+N”是什么意思?重点任务有哪些?

智慧水利重点任务包括:通过构建数字孪生流域、“2+N”水利智能业务应用体系、水利网络安全体系,推进水利工程智能化改造,建成七大江河数字孪生流域,在重点防洪地区实现“四预”,在跨流域重大引调水工程、跨省重点河湖基本实现水资源管理与调配“四预”。

2024-06-24 15:21:20 88

Cascader.js级联选择器

Cascader.js级联选择器

2024-01-25

2022年区块链白皮书

2022区块链白皮书

2023-09-17

LCN适配springcloud2.0的jar包

LCN适配springcloud2.0的jar包

2023-08-25

lcn分布式事务框架源码

lcn分布式事务框架源码

2023-08-25

Spring Boot(六十四):SpringBoot集成Gzip压缩数据

https://phoenix.blog.csdn.net/article/details/132299704配套资料

2023-08-16

Hbase项目实例相关资料

博客配置套资料:https://blog.csdn.net/u013938578/article/details/131581135?spm=1

2023-07-08

hbase专题配套文件

博客配套文件:https://phoenix.blog.csdn.net/article/details/131490039

2023-07-03

hbase专题测试文件

博客配套文件:https://phoenix.blog.csdn.net/article/details/131467398

2023-07-03

hbase导入测试数据集

博客文档:https://phoenix.blog.csdn.net/article/details/131457322

2023-07-03

Disruptor专题简单案例资料

Disruptor专题简单案例资料 https://phoenix.blog.csdn.net/article/details/131264151

2023-06-17

lucene专题教程代码

lucene案例代码https://blog.csdn.net/u013938578/category_12317662.html

2023-06-15

lucene入门数据库资料

博客使用的sql文件https://blog.csdn.net/u013938578/article/details/130798404?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22130798404%22%2C%22source%22%3A%22u013938578%22%7D

2023-05-21

sentinel-feign-parent

博客配套代码:https://blog.csdn.net/u013938578/article/details/130581078?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22130581078%22%2C%22source%22%3A%22u013938578%22%7D

2023-05-09

多图片上传加回显springboot代码

https://phoenix.blog.csdn.net/article/details/129574133配套代码

2023-03-16

springboot脱敏

https://phoenix.blog.csdn.net/article/details/129555715 对应资料

2023-03-15

SpringBoot实现验证码功能

https://phoenix.blog.csdn.net/article/details/128756931

2023-01-24

博客教程相关sql脚本

https://phoenix.blog.csdn.net/article/details/128754261

2023-01-23

springcloud专题相关资料

https://phoenix.blog.csdn.net/article/details/128746553

2023-01-21

springboot基于redis防止接口恶意刷新和暴力请求

资源相关博客:https://blog.csdn.net/u013938578/article/details/128717396

2023-01-17

springboot自定义starter

https://blog.csdn.net/u013938578/article/details/128697641

2023-01-15

javawebuploader分片上传

javawebuploader分片上传,博客地址:https://blog.csdn.net/u013938578/article/details/128521565

2023-01-02

AT模式seate测试代码

https://blog.csdn.net/u013938578/article/details/128444416?spm=1001.2014.3001.5501

2022-12-26

neo4j教程配套的西游图数据库资源

neo4j教程配套的西游图数据库资源

2022-10-02

drools代码示例包

https://blog.csdn.net/u013938578/article/details/125950738?spm=1001.2014.3001.5502 先关教程配套代码

2022-08-12

mysql读写分离演示

https://blog.csdn.net/u013938578/article/details/124986641?spm=1001.2014.3001.5501

2022-05-29

skywalkingRPC

博客https://blog.csdn.net/u013938578/article/details/124538809?spm=1001.2014.3001.5502相关代码

2022-05-10

skywalkingspringboot

该文章springboot部分的代码:https://blog.csdn.net/u013938578/article/details/124506852?spm=1001.2014.3001.5502

2022-05-10

skywalking演示代码

配合https://blog.csdn.net/u013938578/article/details/124506852文章使用

2022-04-30

java实现简单的单点登录

相比于单系统登录,sso需要一个独立的认证中心,只有认证中心能接受用户的用户名密码等安全信息,其他系统不提供登录入口,只接受认证中心的间接授权。间接授权通过令牌实现,sso认证中心验证用户的用户名密码没问题,创建授权令牌,在接下来的跳转过程中,授权令牌作为参数发送给各个子系统,子系统拿到令牌,即得到了授权,可以借此创建局部会话,局部会话登录方式与单系统的登录方式相同。对应的课程网址:https://blog.csdn.net/u013938578/article/details/104629534

2020-03-03

人工智能微信小程序之识别图片上的文字并提取出来

人工智能微信小程序之识别图片上的文字并提取出来,微信小程序+java后台,使用百度文字识别来检测图片上的文字

2020-02-26

FaceRecognition.zip

人工智能微信小程序人脸识别之人脸属性检测项目,微信小程序+java后台,使用百度人脸识别来检测人脸属性

2020-02-17

人工智能微信小程序人脸识别之人脸属性检测

人工智能微信小程序人脸识别之人脸属性检测项目,微信小程序+java后台,使用百度人脸识别来检测人脸属性

2020-02-17

Intellij Idea 创建JavaWeb项目入门(二)demo

Intellij Idea 创建JavaWeb项目入门(二)对应源码,文章地址:https://blog.csdn.net/u013938578/article/details/104076954

2020-01-23

webapi基于Owin中间件的oauth2.0身份认证

基于Owin中间件的OAuth2.0身份认证,文章位置https://blog.csdn.net/u013938578/article/details/82956188

2018-10-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除