自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 Oracle数据库之系统事件触发器、替代触发器、DML触发器(十三)

当试图对不能直接进行DML操作的视图进行修改时,替代触发器可以定义一组操作来替代原本不允许的DML操作。然而,需要注意的是,Oracle数据库中的触发器通常更常用于DML(数据操纵语言)事件,如INSERT、UPDATE和DELETE,而不是系统事件。在这个语法中,{BEFORE | AFTER}指定触发器是在对表的操作发生之前还是之后触发,而[FOR EACH ROW]表示是行级触发器。因此,在编写或修改触发器时,请参考你正在使用的Oracle数据库版本的官方文档以获取最准确的信息。

2024-05-21 16:47:52 883

原创 图书推荐系统数据准备

为了准备构建图书推荐系统的数据,可以编写⼀个爬⾍脚本来从在线图书商店或图书评价⽹站抓取图书的详细信息和⽤⼾评价。在这个⽰例中,展⽰如何使⽤Python的 requests 和BeautifulSoup 库抓取图书信息。• 确保遵守⽬标⽹站的 robots.txt ⽂件规定和版权政策,不要对⽹站造成不必要的负担。• 在实际应⽤中,需要根据⽬标⽹站的实际HTML结构调整选择器。• 对于⼤规模数据抓取,考虑使⽤分布式爬⾍并合理安排抓取频率。

2024-05-17 10:39:56 207

原创 Oracle数据库之管理触发器(十二)

Oracle触发器是数据库中的一种对象,它在特定事件发生时自动执行或触发一段PL/SQL代码。这些事件通常包括对表的DML(数据操作语言)操作,如INSERT、UPDATE、DELETE,以及DDL(数据定义语言)操作,如CREATE、ALTER、DROP等,还包括数据库系统事件和用户事件。创建触发器:你可以使用CREATE TRIGGER语句来创建一个触发器。

2024-05-16 16:39:03 741

原创 Oracle数据库之触发器(十一)

触发器是一种特殊的存储过程,它与表相关联,可以在特定的事件发生时自动触发执行。这些事件通常包括数据的插入、更新或删除等操作。数据完整性保护:可以在数据插入、更新、删除等操作前后进行校验和处理,确保数据的完整性和一致性。自动化数据操作:可以实现一些自动化的数据操作,比如在插入数据时自动计算某个字段的值,或者在某个字段更新时自动更新其他相关字段的值。数据审计和监控:可以记录数据的变化历史,实现数据审计和监控功能,方便跟踪和分析数据的变化过程。

2024-05-15 13:56:45 536

原创 电商⽹站价格追踪器

发送电⼦邮件通知可以使⽤Python的 smtplib 库实现,但请确保在发送通知时不要泄露任何敏感信息,并遵守相关的隐私保护法规。要创建⼀个电商⽹站价格追踪器,可以使⽤Python的 requests 和 BeautifulSoup 库来抓取产品⻚⾯的价格信息,并使⽤ schedule 库定期执⾏价格检查。这个脚本⾸先定义了⼀个 check_price 函数,该函数⽤于抓取产品⻚⾯,解析出产品的当前价格,并与上⼀次记录的价格进⾏⽐较。在实际应⽤中,需要根据⽬标⻚⾯的实际HTML结构来调整选择器。

2024-05-15 10:24:18 167

原创 Oracle数据库之带参数的存储过程(十)

在 Oracle 数据库中,创建带参数的存储过程是很常见的。以下是一个简单的示例,说明如何创建一个接受参数的存储过程,并在过程中执行一些操作。示例:创建一个接受参数的存储过程假设我们有一个名为employees的表,它有一个salary列,我们想要创建一个存储过程来更新某个员工的薪水。) ISBEGIN-- 更新薪水-- 提交事务(如果需要的话)COMMIT;-- 可以添加异常处理部分EXCEPTIONDBMS_OUTPUT.PUT_LINE('没有找到对应的员工ID。');

2024-05-15 09:16:26 1114

原创 Oracle数据库之存储过程(九)

Oracle存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。定义存储过程是由流控制和SQL语句书写的过程,经编译和优化后存储在数据库服务器中。在Oracle中,若干个有联系的过程可以组合在一起构成程序包。优点提高性能:由于存储过程在数据库服务器上执行,可以减少网络流量和数据传输时间。此外,由于编译一次并多次执行,因此还可以提高应用程序的响应速度。保护数据。

2024-05-14 17:00:00 532

原创 网页变化监测器

在这个⽰例中,将使⽤Python的 requests 库来抓取⽹⻚, hashlib 来⽐较内容的变化,并使⽤schedule 库来定时执⾏任务。分析:创建⼀个⽹⻚变化监测器涉及到⼏个关键步骤:⾸先,定期抓取⽬标⽹⻚的内容;最后,如果检测到变化,通过电⼦邮件或其他⽅式通知⽤⼾。需求:编写⼀个脚本定期检查⽹⻚内容的变化(如价格变化、新闻更新等),并通过电⼦邮件或其他⽅式通知⽤⼾,了解定时任务和通知实现机制。• check_for_changes 函数检查当前⽹⻚内容的哈希值是否与之前保存的哈希值相同。

2024-05-14 16:00:00 163

原创 简单的网页搜索引擎

分析:要创建⼀个简单的⽹⻚搜索引擎,需要完成⼏个步骤:⾸先,抓取多个⽹⻚的内容;• 使⽤ defaultdict(set) 创建⼀个索引,其中键是单词,值是包含该单词的URL集合。其次,需要从抓取到的内容中提取⽂本,并创建⼀个简单的索引。在这个例⼦中,索引将是⼀个字典,键是单词,值是包含该单词的⽹⻚列表。需求:抓取多个⽹⻚的内容,创建⼀个简单的索引,然后实现⼀个⼩型的搜索功能,以理解搜索技术的基本原理。最后,将实现⼀个简单的搜索功能,允许⽤⼾输⼊⼀个查询词,然后返回包含该词的所有⽹⻚。

2024-05-14 11:40:32 537

原创 Oracle数据库之PL/SQL基本语法(八)

PL/SQL 是 Oracle 数据库中使用的过程化 SQL 语言扩展,它允许你在 SQL 语句中嵌入控制结构、变量声明、异常处理等。用于在 PL/SQL 块中输出调试信息。为了看到这些信息,你需要在 SQL*Plus 或其他客户端中启用它(例如,使用。PL/SQL 代码通常被组织在块(block)中。一个块包含三个部分:声明部分、执行部分和异常处理部分。包是 PL/SQL 中一种将逻辑、变量、常量、游标、类型、子程序、异常等组合在一起的数据库对象。在 PL/SQL 中,你可以在。部分来处理运行时错误。

2024-05-14 11:02:08 117

原创 论坛帖子数据抓取

脚本假设每个帖⼦的信息都包含在⼀个类名为 post-item 的 <div> 标签中,帖⼦标题、作者和发布⽇期分别包含在该 <div> 标签的不同⼦标签中(这⾥使⽤ <h3> 标签作为帖⼦标题的容器,<span> 标签作为作者和发布⽇期的容器)。脚本通过遍历所有这样的 <div> 标签,提取每个帖⼦的标题、作者和发布⽇期,并将这些信息打印出来。要抓取论坛帖⼦数据,包括帖⼦标题、作者和发布⽇期,可以使⽤ requests 库获取⽹⻚内容,再⽤ BeautifulSoup 解析HTML。

2024-05-13 16:00:00 115

原创 Oracle数据库之集合运算(七)

Oracle 中的集合运算是指将两个或多个查询的结果集组合成一个结果集的操作。这些集合运算包括 UNION、UNION ALL、INTERSECT 和 MINUS。注意:使用 UNION ALL 通常比 UNION 更快,因为它不需要去除重复的记录。希望这些信息对你有所帮助!

2024-05-13 14:15:00 414

原创 新闻标题抓取

要从新闻⽹站⾸⻚抓取最新的新闻标题和链接,可以使⽤ requests 库获取⽹⻚内容,然后利⽤ BeautifulSoup 解析HTML,提取新闻标题和相应的链接。由于各新闻⽹站的⻚⾯结构差异较⼤,需要检查想抓取的⽹站的HTML结构,并相应地调整上述代码中的选择器(例如, find_all ⽅法中的标签名和类名)。由于新闻⽹站的结构可能不断变化,且每个⽹站的结构不同,这⾥提供的代码仅供学习和参考,可能需要根据⽬标⽹站的实际HTML结构进⾏相应调整。

2024-05-13 10:04:19 150

原创 Oracle数据库之子查询(六)

Oracle子查询是一个SELECT语句,它是嵌入在另一个SELECT语句中的子句。子查询可以在主查询之前执行,并将结果提供给主查询使用。通过使用子查询,你可以将一个查询嵌套到另一个查询中,以便进行更复杂的查询操作。用于查询:子查询(内查询)在主查询之前执行完成,并将结果返回给主查询(外查询)使用。子查询可以返回单行数据,也可以返回多行数据。如果返回多行数据,可以使用多行比较操作符(如IN、ALL、ANY)来处理。创建表:你可以使用子查询的结果来创建一个新表。

2024-05-13 09:32:24 680

原创 Oracle数据库之多表查询、层次查询(五)

Oracle 的连接条件的类型等值连接不等值连接外连接自连接。

2024-05-12 16:00:00 870

原创 电影评分和评论抓取

要从电影评分⽹站抓取电影的评分和⽤⼾评论,可以考虑使⽤BeautifulSoup和requests库解析⽹⻚内容。不过,实际操作中,针对特定⽹站的结构可能会有所不同,这⾥将给出⼀个基础的⽰例, 演⽰如何从⼀个假设的⽹站中抓取信息。• comments = soup.find_all('div', class_='user-comment') 假设⽤于查找所有包含⽤⼾评论的 元素,每个元素的类名为 user-comment。在这个⽰例中,⾸先向假设的电影⽹站发送了⼀个GET请求。

2024-05-12 14:00:00 225

原创 小说文本爬取

要从电影评分⽹站抓取电影的评分和⽤⼾评论,可以考虑使⽤BeautifulSoup和requests库解析⽹⻚内容。不过,实际操作中,针对特定⽹站的结构可能会有所不同,这⾥将给出⼀个基础的⽰例,演⽰如何从⼀个假设的⽹站中抓取信息。• comments = soup.find_all('div', class_='user-comment') 假设⽤于查找所有包含⽤⼾评论的 <div> 元素,每个元素的类名为 user-comment。在这个⽰例中,⾸先向假设的电影⽹站发送了⼀个GET请求。

2024-05-12 08:00:00 134

原创 Oracle数据库之条件查询、模糊查询和排序(四)

这些只是 Oracle 条件查询的一些基本示例。你可以根据实际需求组合和扩展这些条件。Oracle 中的条件查询是通过在 SQL 查询语句中使用。子句允许你指定一个或多个条件,以过滤出满足这些条件的记录。是一个通配符,代表零个、一个或多个字符。你可以使用各种比较运算符,如。注意:在 Oracle 中,大于 5000 并且。大于 5000 或者。

2024-05-12 07:30:00 702

原创 Oracle数据库之基本查询详解(三)

结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统:同时也是数据库脚本文件的扩展名。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存取方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以实用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言可以嵌套,这使得它具有极大的灵活性和强大的功能。

2024-05-11 16:05:29 655

原创 Oracle数据库之 常用数据库对象(二)

视图是一个虚表.视图建立在已有表的基础上,视图赖以建立的这些表称为基表.向视图提供数据内容的语句为select语句,可以将视图理解为存储起来的select语句.视图向用户提供基表数据的另一种表现形式.最大的优点就是简化复杂的查询。

2024-05-11 14:27:59 650

原创 Oracle数据库之 体系结构(一)

数据库的数据是存储在表空间中的,真正是在某一个或者多个数据文件中。而一个表空间可以由一个或多个数据文件组成,一个数据文件之只能属于一个表空间。一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属的表空间才行。由于Oracle的数据库不是普通的概念,Oracle是有由户和表空间对数据进行管理和存放的。但是表不是由表空间去查询的,而是由用户去查的。一个数据库可以有n个实例。表的数据,是由用户放入某一个表空间的,而这个表空间会随机把这些表数据放到一个或者多个数据文件中。

2024-05-11 14:06:13 300

原创 关于oracle误删数据如何进行恢复

oracle数据库有类似回收站的功能,所以平时如果误删数据是有很大可能可以进行恢复的,前提是没有使用 truncate 方式来删除表以及没有使用 purge(drop table table_name purge)查看被删除的数据是否存在,如果存在则可以进行数据恢复,如果没有可以把时间向前提一下。首先通过历史命令目录查询执行删除数据语句的时间 可以通过快捷键(ctrl+e)或者v$sql表来查看具体的详细信息 确认时间之后可以通过执行。执行该条语句就可以对表进行恢复了。

2024-05-11 10:13:41 308

原创 oracle 行转列及列转行

说明:pivot(聚合函数 for 列名 in(类型)),其中 in(‘’) 中可以指定别名,in中还可以指定子查询,比如 select distinct ranking from temp。说明:decode的用法:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)说明:unpivot(自定义列名/*列的值*/ for 自定义列名/*列名*/ in(列名))

2024-05-11 10:11:54 260

原创 股票数据爬取

job 函数定义了⼀个定期执⾏的任务,调⽤ fetch_stock_price 函数来获取股票价格。然后,通过⼀个⽆限循环调⽤ schedule.run_pending() 来持续执⾏已计划的任务。使⽤yfinance.Ticker 来获取股票的数据,然后通过 stock.history(period='1d') 获取今天的数据,并提取收盘价。以下是⼀个基础的⽰例,展⽰如何使⽤ yfinance 库(⼀个⽅便获取Yahoo Finance数据的库)定期获取特定股票的最新价格,并打印输出。

2024-05-11 09:00:00 128

原创 天气数据抓取

这个脚本⾸先构建⼀个包含城市名、API密钥和温度单位(摄⽒度)的参数字典,然后使⽤requests.get ⽅法发送⼀个GET请求到OpenWeatherMap的API端点。分析:要从天⽓⽹站抓取当前天⽓数据并解析,通常需要使⽤API提供的接⼝,因为这是获取实时数据的最有效⽅式。需要在OpenWeatherMap上注册并获取⼀个API密钥(也称为API key或AppID)。请确保将 your_api_key_here 替换为实际API密钥,并根据需要将 CITY 变量的值替换为想查询的城市名。

2024-05-10 19:00:00 118

原创 CSV数据提取

这个⽰例中,脚本⾸先发送⼀个HTTP GET请求到指定的URL以获取CSV⽂件的内容。要从在线CSV⽂件中提取数据并将其保存到本地,可以使⽤ requests 库来获取CSV⽂件的内容,然后使⽤Python的内置 csv 模块来处理这些数据。这个脚本CSV⽂件是以UTF-8编码的。如果CSV使⽤了不同的编码,需要在调⽤ decode ⽅法时指定正确的编码⽅式。需要替换 url 变量的值为要下载的CSV⽂件的实际URL,以及根据需要修改本地保存路径local_csv_path。

2024-05-10 18:30:00 170

原创 使用python爬取图片

以下是⼀个简单的图⽚下载器的⽰例代码。这个脚本会下载指定⽹⻚上的所有图⽚到⼀个名为downloaded_images 的本地⽂件夹中。此外,由于⽹络请求的性质,尝试下载⼤量图⽚或从响应时间较⻓的服务器下载时,脚本可能会运⾏较慢。在本地环境中运⾏上述脚本时,需替换 url 变量的值为你想要下载图⽚的⽹⻚地址,然后运⾏脚本。有些⽹站可能使⽤相对路径来指向图⽚,在这种情况下,需要修改脚本来构建完整的URL。如果⽹⻚上的图⽚URL是完整的,脚本将会下载所有找到的图⽚到指定的⽂件夹中。

2024-05-10 14:08:49 231 1

原创 python操作redis

数据类型:Redis 支持丰富的数据类型,如字符串、列表、集合、有序集合、哈希表等,方便存储不同类型的数据。功能丰富:Redis 提供了诸如发布/订阅、Lua 脚本、事务、持久化等功能,可以满足各种应用场景的需求。性能:Redis 是一个基于内存的数据结构存储系统,相较于传统的关系型数据库,它具有更高的读写性能。)提供了友好的接口,使得在 Python 中整合 Redis 非常简单。首先我们先了解python 集成redis有哪些优势。易于使用:Python 的 Redis 库(如。

2024-05-09 08:48:10 163

原创 爬取小说存入数据库

今天写的这篇希望对大家能够有所帮助。有任何疑问或建议都可以在评论区内留言。请继续关注,后续还会有更多的文章,包含python,java,vue等内容,不足之处还望提出您宝贵的意见。首先需要给请求指定一个请求头来模拟chrome浏览器。准备工作:安装数据库驱动和数据库连接池。

2024-05-08 17:02:41 988

原创 二维码生成和识别

在 JavaWeb 开发中,一般使用 Zxing 来生成和识别二维码,但是,Zxing 的识别有点差强人意,不少相对模糊的二维码识别率很低。不过就最新版本的测试来说,识别率有了现显著提高。

2024-05-08 16:47:16 172

原创 通过python生成生日祝福PPT

【代码】通过python生成生日祝福PPT。

2024-05-08 16:42:15 310

原创 python实现操作数据库

MySQL-python:也就是MySQLdb。是对C语言操作MySQL数据库的一个简单封装。pymysql:纯Python实现的一个驱动。因为是纯Python编写的,因此执行效率不如MySQL-python。并且也因为是纯Python编写的,因此可以和Python代码无缝衔接。MySQL Connector/Python:MySQL官方推出的使用纯Python连接MySQL的驱动。因为是纯Python开发的,效率不高。mysqlclient:是MySQL-python的另外一个分支。

2024-05-08 08:40:35 139

原创 python实现mysql数据库连接池

python编程中可以使用MySQLdb进行数据库的连接及诸如查询/插入/更新等操作,但是每次连接mysql数据库请求时,都是独立的去请求访问,相当浪费资源, 而且访问数量达到一定数量时,对mysql的性能会产生较大的影响。DBUtils是一套Python数据库连接池包,并允许对非线程安全的数据库接口进行线程安全包装。maxusage :单个连接最大复用次数 根据自己的需要合理配置上述的资源参数,以满足自己的实际需要。因此,实际使用中,通常会使用数据库的连接池技术,来访问数据库达到资源复用的目的。

2024-05-08 08:32:06 181

原创 PyCharm常用快捷键和设置

Ctrl + Shift + F 或者连续2次敲击shift 全局查找{可以在整个项目中查找某个字符串什么的,如查找某个函数名字符串看之前是怎么使用这个函数的}Ctrl + Numpad+/- 展开/折叠代码块(当前位置的:函数,注释等)Ctrl+X/Shift+Delete 剪切当前行或选定的代码块到剪贴板。Ctrl+C/Ctrl+Insert 复制当前行或选定的代码块到剪贴板。Ctrl + shift + Numpad+/- 展开/折叠所有代码块。

2024-05-07 11:36:54 482 1

原创 自动化测试数据爬取

3. 编写爬⾍脚本: 使⽤Python的 requests 库来获取数据, BeautifulSoup 或 lxml 来解析HTML数据,或者直接使⽤ pandas 的 read_html 函数快速转换表格数据。4.处理和保存测试数据 :处理抓取到的数据,转换成适合⾃动化测试使⽤的格式。将测试数据保存为JSON⽂件。5.在⾃动化测试中使⽤数据 :最后,根据测试框架的不同,将保存好的测试数据引⼊到⾃动化测试脚本中。通过抓取现实世界的数据,可以为应⽤提供更加全⾯的测试覆盖,从⽽提⾼软件的质量和稳定性。

2024-05-07 11:24:08 338 1

原创 爬⾍框架Scrapy⾼级应⽤

这可以通过在命令⾏指定输出格式来实现,例如: scrapy crawl myspider -o output.json 这条命令会运⾏名为 myspider 的Spider,并将爬取到的数据以JSON格式保存到 output.json⽂件中。Scrapy是⼀个快速、⾼级的⽹⻚爬取和⽹⻚抓取框架,⽤于抓取⽹站数据并从⻚⾯中提取结构化的数据。这⾥,介绍如何使⽤Scrapy框架实现复杂⽹站的数据爬取的基本步骤,包括创建Scrapy项⽬、定义Item、编写Spider和存储数据。

2024-05-06 08:14:09 681

原创 分布式爬虫设计

设计⼀个分布式爬⾍系统涉及到将爬⾍任务在多台机器上进⾏分布和协调,以提⾼数据抓取的效率和规模。• 合规性:确保遵守⽬标⽹站的 robots.txt 规定,尊重版权和⽤⼾隐私。• 容错性:系统应该能够处理节点故障,⾃动重新分配任务,保证数据抓取的完整性。• 扩展性:系统设计应该容易添加更多的爬⾍节点,以应对更⼤规模的爬取需求。• 去重策略:有效的URL去重策略,确保不会浪费资源去重复爬取相同的⻚⾯。

2024-05-04 15:55:52 296 1

原创 验证码处理

使⽤第三⽅服务:对于复杂的验证码,⽐如图像验证码、滑块验证或⾕歌的reCAPTCHA,可以考虑使⽤第三⽅解决⽅案。⼀些服务如Anti-Captcha、2Captcha提供了⾃动解决验证码的API,但这些服务是付费的,并且 使⽤这些服务可能违反⽬标⽹站的服务条款。1. 使⽤OCR技术识别简单验证码 对于⼀些简单的、基于⽂本的验证码,可以使⽤光学字符识别(OCR)技术尝试⾃动识别。尽管解决验证码违反了许多服务的使⽤条款,这⾥提供⼀些基本的信息,仅供学术交流和了解。调⽤函数,传⼊验证码图⽚路径。

2024-05-03 14:17:29 112 2

原创 爬⾍监控与⾃动恢复机制

实现爬⾍的监控和⾃动恢复机制是保证⻓期稳定运⾏的关键。这不仅可以及时发现和解决问题,还可以在某些情况下⾃动恢复爬⾍的执⾏。

2024-05-03 09:25:49 415 1

原创 WebSocket数据抓取

这个脚本使⽤了 websocket-client 库创建了⼀个WebSocket客⼾端,连接到wss://echo.websocket.org 这个⽤于测试的WebSocket服务。抓取WebSocket连接中的实时数据流涉及到与WebSocket服务器建⽴持久的连接,并实时接收和处理通过该连接发送的数据。Python的 websocket 库可以⽤来实现与WebSocket服务器的连接和数据交互。运行脚本:运⾏上述脚本,它将连接到指定的WebSocket服务器,并实时打印接收到的消息。

2024-05-03 09:20:26 339 4

Python之大麦网自动抢票实现自动登陆

知识点: 面向对象编程 selenium 操作浏览器 pickle 保存和读取Cookie实现免登陆 time 做延时操作 os 创建文件,判断文件是否存在https://mp.weixin.qq.com/s?__biz=MzU1NjY4OTUxMQ==&mid=2247489818&idx=1&sn=ff265788e5c8049457b0e02f75b68fef&chksm=fbc06812ccb7e10480e3f38b48ead8ee0bc8d4fa9143d58f40c231dcd20662bb5eadaf363310&scene=132&exptype=timeline_recommend_article_extendread_samebiz&poc_token=HNu3e2WjD5G5R5oYtuvD0_5oHnZOKAc-4VIvCYuq 第三方库: selenium >>> pip install selenium 开发环境: 版 本:anaconda(python3.8.8) 编辑器:pycharm

2024-05-07

空空如也

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

TA关注的人

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