自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

东风麦芽糖

作者博客均为原创

  • 博客(338)
  • 资源 (10)
  • 收藏
  • 关注

原创 python进阶三 网络编程

本文介绍了网络编程的三个核心要素:IP地址、端口和协议。IP地址用于标识网络设备,端口标识进程地址,协议规定通信规则。重点讲解了TCP协议的特点和通信流程,包括三次握手建立连接和四次挥手断开连接。同时详细说明了Socket套接字的概念及其在进程间网络通信中的作用,并提供了TCP服务端和客户端的开发流程。此外还介绍了字符串与二进制数据在网络传输中的转换方法。全文系统性地阐述了网络编程的基础知识和TCP协议的应用实现。

2026-04-13 12:40:32 333

原创 python进阶二 闭包和装饰器

本文介绍了Python中函数参数、闭包和装饰器的核心概念与应用。主要内容包括: 函数参数:函数名代表函数入口地址,可作为参数传递实现间接调用(回调函数),函数名可像普通变量一样赋值和使用。 闭包:在嵌套函数中,内部函数引用外部函数变量并返回内部函数名,形成闭包。闭包可保留外部函数变量状态,通过nonlocal关键字可修改外部变量。 装饰器:基于闭包实现,在不改变原函数基础上增加功能。提供两种使用方式:传统赋值方式和@语法糖方式。装饰器适用于各种函数类型(有无参数/返回值)。 这些特性共同构成了Python函

2026-04-13 12:40:14 340

原创 python进阶一 面向对象及深拷贝与浅拷贝

面向对象编程(OOP)是一种以对象为中心的编程思想,将现实世界的实体抽象为具有属性和方法的类。Python支持面向对象和面向过程两种编程方式。面向对象的三大核心特性是封装(隐藏实现细节)、继承(代码复用)和多态(同一接口不同表现)。类是对事物的抽象描述,对象是类的具体实例。通过__init__方法可在创建对象时初始化属性,__str__方法定制对象打印输出,__del__方法在对象销毁时执行清理操作。Python的self关键字指向对象实例本身,用于访问属性和方法。OOP使代码更贴近现实,提高可维护性和扩展

2026-04-13 12:39:58 348

原创 若依整合AI三 拔高原理篇

代码生成器是提升开发效率的重要工具,主要分为表结构管理和代码生成两部分。系统通过gen_table和gen_table_column两张核心表存储业务表结构信息,实现表结构的导入、编辑和同步功能。当选择表结构后,系统可自动生成前后端代码并提供下载。核心功能包括:数据库表列表查询、表结构导入和代码生成下载。此外,系统支持通过配置文件自定义生成参数,如作者名、包路径和表前缀等,并可扩展功能如支持Lombok注解。该工具通过自动化代码生成,显著减少了重复开发工作,提高了项目开发效率。

2026-04-05 16:39:48 437 1

原创 若依整合AI二 实战篇

摘要: 本项目是基于物联网技术的智能售货机运营管理系统,通过互联网连接实现设备远程监控、智能分析、移动支付等功能。系统包含管理员、运维、运营、合作商和消费者五种角色,支持区域划分、点位管理、货道设计等核心功能。采用AI技术辅助运营决策,通过提示工程优化人机交互。系统架构包含五端协同,实现从设备投放、补货管理到消费者购物的完整业务流程,提供智能化零售解决方案。

2026-04-05 16:39:19 385

原创 若依整合AI一 基础应用篇

摘要 本文详细介绍了基于若依(RuoYi)框架的项目搭建与开发流程。首先分析了若依官方提供的多个版本(前后端混合版、分离版、微服务版和移动端版)及其特点,并介绍了非官方扩展版本。随后以RuoYi-Vue为例,分步骤讲解了后端项目初始化、MySQL数据库配置、Redis服务启动,以及前端项目的运行部署。最后通过课程管理案例,展示了如何使用若依的代码生成器快速实现CRUD功能,包括表结构导入、代码生成配置和项目集成。文章提供了完整的开发环境配置建议和详细的操作指南,帮助开发者快速上手若依框架进行企业级应用开发。

2026-04-05 16:38:39 369

原创 第三方系统集成若依权限校验

本文介绍了基于若依管理系统开发的系统A,通过开发SDK工具包实现第三方系统B的安全接口调用。主要内容包括:1) 创建一个Spring Boot 4.x项目作为SDK基础;2) 开发GetTokenService工具类,使用OkHttp实现登录认证和Token获取功能;3) 配置自动扫描类UltrahdCommonUtilsAutoConfiguration;4) 提供应用配置模板和Spring Boot自动配置机制。该SDK通过集成系统A的用户权限验证机制,使第三方系统能够安全调用系统A的接口,同时详细记录

2026-04-02 14:07:36 205

原创 centos虚拟机忘记密码怎么办

CentOS虚拟机密码重置指南 忘记CentOS虚拟机密码时,可通过以下步骤重置: 启动时按e进入编辑模式 在UTF-8后添加"rd.break",按Ctrl+X重启 进入紧急模式后依次执行: mount -o remount,rw /sysroot chroot /sysroot passwd root(设置新密码) 最后执行: touch /.autorelabel exit reboot 重启后即可用新密码登录。此方法适用于大多数CentOS版本。

2026-03-23 21:26:45 107

原创 cursor二 cursor使用以及无限续杯

《Cursor快速上手+科学使用指南》摘要 Cursor是一款基于VS Code的AI编程工具,深度集成AI模型,提供智能代码补全、错误诊断和自然语言编程功能。文章介绍了Cursor的安装登录、无限免费试用技巧(通过邮箱子账号和机器码重置)、配置选项(AI设置与编辑器设置)以及汉化方法。对比传统IDE,Cursor强调AI辅助开发体验,支持项目级上下文理解,允许开发者用自然语言描述需求自动生成代码。同时提供了从VS Code迁移配置的两种方案,帮助用户快速适应新环境。

2026-03-17 09:29:44 2049 2

原创 Cursor一Cursor入门

本文介绍了基于AI工具的软件开发流程,重点围绕三个核心工具展开:1) 使用DeepSeek/问小白进行数据库表结构和接口设计;2) 通过Sealos云操作系统的Devbox实现环境部署;3) 利用Cursor AI编辑器完成代码开发与调试。详细说明了Cursor的安装配置方法,包括离线安装、禁用自动更新等技巧,并提供了优化开发环境的JSON配置方案。同时介绍了通过临时邮箱实现Cursor"无限续杯"的使用策略,最后以"系统信息管理"模块为例展示了AI辅助设计的完整流程

2026-03-17 09:29:13 273

原创 十四 Go语言之网络编程

本文介绍了计算机网络的基本概念和Socket编程原理。主要内容包括: 网络协议的定义与发展,从原始协议到标准协议的演变过程 典型网络协议的分类与功能,如TCP、UDP、HTTP等 网络分层模型(OSI七层和TCP/IP四层)及各层功能 网络通信过程中IP地址、MAC地址和端口的协同工作机制 Socket的基本概念、工作原理及在网络编程中的应用 网络应用程序的两种设计模式(C/S和B/S)及其优缺点比较 文章通过具体示例和图表详细阐述了网络通信的底层机制,为理解网络编程提供了理论基础。重点突出了协议分层思想、

2026-03-17 09:26:15 512

原创 十三 Go语言之并发编程

并发编程是指在一台处理器上"同时"处理多个任务的技术。随着硬件发展,并发程序变得越来越重要,它能够充分利用多核处理器资源。并发在宏观上是多个程序同时运行,微观上则是通过快速轮换执行指令实现的。常见并发技术包括: 进程并发:独立地址空间但系统开销大 线程并发:共享地址空间,需通过锁机制同步 协程并发:轻量级线程,资源消耗最少 Go并发:语言级别支持goroutine和channel Go语言通过goroutine实现高效并发,每个goroutine只需极少的栈内存,可轻松创建成千上万个并发

2026-03-17 09:25:52 432

原创 十二 Go语言之文本文件处理

Go语言文件操作摘要 本文介绍了Go语言中文件的基本操作,包括创建、写入和读取文件的方法。主要内容包括: 创建文件:使用os.Create()函数创建文件,若文件存在会清空原有数据。 写入数据: 使用WriteString()写入字符串 使用Write()写入字节切片 使用WriteAt()在指定位置写入数据 使用OpenFile()追加数据到已有文件 读取数据: 使用Read()读取文件内容到切片 使用bufio包实现行读取 文件路径:介绍了相对路径和绝对路径的区别。 文件操作案例:演示了文件拷贝的实现方

2026-03-17 09:25:22 315

原创 十一 Go语言之异常处理

本文介绍了Go语言中的异常处理机制。首先讲解了error接口的基本使用,通过errors包和fmt包处理一般性错误。然后介绍了panic函数,用于处理程序致命错误导致崩溃的情况。接着详细讲解了defer关键字,用于延迟函数执行,常用于资源释放等场景,并分析了多个defer的执行顺序。最后介绍了recover函数,用于从panic中恢复程序执行,避免程序崩溃。文章通过具体代码示例演示了各种异常处理方式的使用场景和注意事项,为Go语言开发者提供了全面的错误处理指导。

2026-03-17 09:25:02 416

原创 十 Go语言之面向对象

本文介绍了Go语言中的面向对象编程思想,通过生活实例对比面向过程与面向对象的区别。面向过程强调步骤(如自己修车),而面向对象强调对象(如找4S店修车)。在Go语言中,结构体替代了类,通过匿名字段实现类似继承的效果。文章详细讲解了匿名字段的创建、初始化、成员操作、同名字段处理、指针类型匿名字段以及多重继承的实现方式,并提供了具体代码示例。最后指出Go语言严格意义上没有继承,但可以通过"匿名组合"达到类似效果。

2026-03-17 09:24:39 353

原创 Python之FastAPI

作用:使用中间件为每个请求前后添加统一的处理逻辑(记录日志、身份认证、跨域、设置响应头、性能监控等)中间件(Middleware)是一个在每次请求进入 FastAPI 应用时都会被执行的函数。它在请求到达实际的路径操作(路由处理函数)之前运行,并且在响应返回给客户端之前再运行一次。print("中间件2 start")print("中间件2 end")print("中间件1 start")# 它将当前的 request 对象传递给链路中的下一个处理函数。

2026-03-12 08:01:30 593

原创 AI大模型开发

大模型是基于深度学习技术训练的大型语言模型,能够处理和生成人类语言。它通过预训练、理解意图和反馈择优三个核心步骤实现智能化。DeepSeek等国产大模型在中文支持和性能上表现出色,且通过蒸馏技术可降低运行成本。用户可通过Ollama等工具在本地部署大模型,如DeepSeek-R1和通义千问等。大模型的发展为AI应用提供了强大支持,使普通设备也能运行复杂模型。

2026-03-09 19:33:13 789

原创 VmWare虚拟机常用设置

本文介绍了设置虚拟机网络和安装CentOS系统的详细步骤。首先配置VmNet8网卡,设置子网IP为192.168.88.0并指定网关为192.168.88.2。然后下载CentOS 7.6镜像,通过VMware进行安装,包括选择安装类型、关联镜像文件、设置账号密码、配置虚拟机名称和存储位置等。最后完成虚拟机硬件设置并启动安装过程。整个过程图文并茂,提供了从网络配置到系统安装的完整指导。

2026-03-04 19:51:28 39

原创 springAI二 SpringAI实战

前言 SpringAI整合了全球(主要是国外)的大多数大模型,而且对于大模型开发的三种技术架构都有比较好的封装和支持,开发起来非常方便。不同的模型能够接收的输入类型、输出类型不一定相同。SpringAI根据模型的输入和输出类型不同对模型进行了分类:大模型应用开发大多数情况下使用的都是基于对话模型(Chat Model),也就是输出结果为自然语言或代码的模型。目前SpringAI支持的大约19种对话模型,以下是一些功能对比:其中功能最完整的就是OpenAI和Ollama平台的模型了。

2026-03-04 19:49:20 255

原创 springAI一 大模型基础知识以及Ollama部署本地模型

人工智能发展经历了三个阶段,其中Transformer神经网络模型成为推动AI高速发展的关键技术。基于Transformer的大语言模型(LLM)通过注意力机制实现智能化推理预测,逐字生成连贯内容。大模型应用开发主要通过API接口交互,企业可选择开放API、云平台部署或本地服务器部署三种方式。开放API使用便捷但存在隐私风险,本地部署数据更安全但成本较高。开发工具如Ollama可帮助快速部署私有模型,为AI应用开发提供灵活选择。

2026-03-04 19:48:55 298

原创 完美解决本地markdown文件上传到csdn后图片无法显示的问题

本文介绍了解决Markdown文档上传CSDN后图片无法显示的问题。通过使用Gitee作为图床,配合PicGo和Typora实现自动图片上传。具体步骤包括:1)注册Gitee并创建图片仓库,生成私人令牌;2)安装Node.js和PicGo,配置Gitee图床参数;3)在Typora中设置图片自动上传选项;4)对已有Markdown文件可通过复制到新文件实现图片迁移。该方法可确保文档中的图片链接始终有效,解决跨平台显示问题。

2026-03-04 19:47:52 193

原创 使用TortoiseGit上传代码到gitee仓库

摘要:本文介绍如何将本地项目上传到Gitee平台。首先在Gitee创建新仓库并获取Git地址,然后在本地项目文件夹右键创建Git仓库。通过TortoiseGit提交所有文件,填写远程仓库地址后完成推送。最后刷新Gitee页面即可查看上传的代码。GitHub操作流程类似,前提是已安装Git和TortoiseGit并拥有Gitee账号。(149字)

2026-03-04 19:47:01 40

原创 DevOps四 Kubernetes编排工具介绍 以及 Jenkins集成Kubernetes

Kubernetes是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用。它提供自动负载均衡、存储编排、滚动更新、自我修复等功能。Kubernetes采用Master-Slave架构,包含API Server、etcd数据库、调度器等核心组件。安装过程需准备至少2台2核4G服务器,设置主机名和网络配置后,通过脚本初始化Master节点,再通过kubeadm token让Worker节点加入集群。安装完成后需检查节点状态并配置网络插件如Calico。Kubernetes能有效简化容器化应用的部署与管

2026-03-04 19:45:56 293

原创 DevOps三 Harbor与Jenkins流水线介绍

本文介绍了Harbor私有Docker镜像仓库的集成与使用。Harbor相比官方Registry提供更完善的权限管理、安全扫描等功能。文章详细说明了Harbor的安装步骤,包括下载解压、配置修改和启动流程。同时演示了Harbor的核心使用场景:创建用户和私有项目、推送/拉取镜像操作。特别针对Jenkins集成场景,说明了如何让Jenkins容器使用宿主机Docker服务来实现镜像构建和发布。通过Harbor可以优化多项目部署流程,减少重复操作,提升部署效率。

2026-03-04 19:45:27 364

原创 DevOps二 CD、CI持续集成与持续交付 以及 集成Sonar Qube

本文介绍了基于Jenkins实现SpringBoot项目的持续集成(CI)和持续部署(CD)流程。在持续集成部分,通过添加Dockerfile和docker-compose.yml文件配置容器化部署,并在Jenkins中设置构建后操作脚本实现自动化构建和部署。持续部署部分则通过Git Parameter插件实现基于Git标签的版本控制,可选择性构建指定版本的代码并部署到生产环境。整个流程实现了从代码提交到自动化构建、测试环境部署再到生产环境发布的完整CI/CD管道,显著提高了软件交付效率和质量。

2026-03-04 19:44:45 375

原创 DevOps一 Jenkins介绍以及安装部署

摘要 本文系统介绍了DevOps的概念、工具链及实施流程。首先阐述了传统开发与运维团队协作的痛点,提出DevOps作为解决方案,通过整合开发、测试、运维团队形成持续交付闭环。详细讲解了DevOps各阶段核心工具:Code阶段的Git和GitLab安装配置,Build阶段的Maven构建工具,Operate阶段的Docker容器化部署方案。文章提供了GitLab的Docker安装指南、Docker和Docker-Compose的详细安装步骤,为实施DevOps提供了实用的技术参考。整个流程覆盖从代码管理、构建

2026-03-04 19:44:17 420

原创 window系统安装、卸载openclaw

本文详细介绍了OpenClaw的安装配置流程。首先需要安装NodeJS(v22.0.0以上),然后通过npm安装OpenClaw。安装完成后需运行向导程序,依次配置:选择本地网关、DeepSeek模型并输入API Key、设置端口和连接方式。接着配置飞书机器人,包括获取AppID/AppSecret、设置权限等。最后选择必要的插件模块(boot-md、command-logger、session-memory)完成安装。整个过程需注意API Key和凭证的安全保存,以及DeepSeek账户充值等关键步骤。

2026-03-02 12:59:27 14319 3

原创 vue详解十一 vue总结

本文总结了Vue.js核心知识点:1)模板语法中插值表达式使用限制;2)响应式原理和计算属性特点;3)Vue实例生命周期的四个阶段八个钩子函数;4)脚手架使用、组件注册方式及通信方案;5)常用语法糖如.sync修饰符、ref获取DOM;6)插槽的三种类型及使用;7)VueRouter的路由配置、传参方式和导航方法;8)组件缓存keep-alive及对应生命周期钩子。内容涵盖Vue开发中的模板语法、组件化、状态管理、路由等核心概念,适合快速回顾Vue技术要点。

2026-03-02 09:00:00 810

原创 vue详解十 vue3实战

项目摘要 本项目是一个基于Vue3的后台数据管理系统,采用现代化前端技术栈开发。系统包含用户登录、数据管理等功能模块,界面采用Element Plus组件库构建。项目使用pnpm包管理工具,配置了ESLint和Prettier保证代码风格统一,并通过husky实现Git提交时的代码检查工作流。技术栈包括Vue3、Pinia状态管理、Vite构建工具等,支持自动按需导入组件优化性能。系统提供完整的在线演示和接口文档,便于开发和测试。

2026-03-02 08:56:27 573

原创 vue详解九 vue3详解

Vue3组合式API简介与项目搭建 Vue3引入了组合式API,相比Vue2的选项式API具有代码量少、集中式维护等优势。组合式API通过setup选项或<script setup>语法糖实现,提供了reactive和ref函数创建响应式数据,computed计算属性以及watch侦听器等功能。 使用create-vue脚手架工具可以快速搭建Vue3项目,其底层基于vite构建工具,提供极速响应。项目结构简洁,关键文件包括main.js入口文件和App.vue根组件。 组合式API核心特性包括:

2026-03-02 08:53:42 910 1

原创 vue详解八 vue商城项目

移动端商城项目采用Vue2开发,使用vant-ui组件库实现界面。项目通过vue-cli创建,选择手动配置功能,包括Vue2、Babel、Router、Vuex、Sass预处理等。调整目录结构,删除默认文件并新增api和utils目录。组件库采用按需导入方式,通过babel-plugin-import插件优化性能,避免全部导入导致打包体积过大。项目提供完整的接口文档和演示地址,帮助开发者快速上手移动端商城开发。

2026-03-02 08:53:15 964

原创 vue详解七 vuex详解

Vuex是一个Vue的状态管理工具,用于管理多组件共享数据。它适用于多个组件需要共同维护一份数据的场景,如个人信息、购物车等。Vuex的优势在于数据集中化管理、响应式变化和简洁的操作方式。 创建Vuex仓库步骤: 安装vuex 新建store/index.js文件 在main.js中导入并挂载store 核心概念state用于存储共享数据,组件可通过$store.state或辅助函数访问。通过创建包含state的store对象,所有组件都能访问这些共享数据。Vuex适合复杂项目中使用,简单场景可能增加不必要

2026-03-02 08:52:43 735

原创 vue详解六 声明式导航、编程式导航以及vue路由详解

本文介绍了Vue Router中声明式导航的使用方法。主要包括: 使用router-link组件替代a标签实现导航跳转和高亮效果 router-link会自动添加router-link-active(模糊匹配)和router-link-exact-active(精确匹配)两个类名 可以通过配置linkActiveClass和linkExactActiveClass自定义高亮类名 查询参数传参方法:在to属性中添加?参数名=值,通过$route.query获取参数 文章通过代码示例详细演示了如何实现导航高亮效

2026-03-02 08:52:22 572

原创 vue详解五 VUE指令、插槽、路由介绍

本文介绍了Vue.js中自定义指令和插槽的使用方法。主要内容包括:1)自定义指令的基本语法(全局和局部注册)、指令值获取及v-loading指令封装;2)插槽的三种类型(默认插槽、具名插槽、作用域插槽);3)通过商品列表案例演示组件封装;4)路由入门知识。重点讲解了如何封装自定义指令实现DOM操作扩展,如自动聚焦、动态修改样式等,并以v-loading指令为例展示了实际应用场景。文章提供了完整的代码示例,帮助开发者快速掌握这些核心功能。

2026-03-02 08:51:58 636

原创 vue详解四 vue组件通信

本文主要介绍了Vue组件的核心概念和通信机制。首先讲解了组件的三大组成部分:结构、样式和逻辑,重点说明了scoped属性解决样式冲突的原理以及data必须使用函数的原因。其次详细介绍了组件通信方案,包括父子组件通过props和$emit进行数据传递的流程,并提供了代码示例。最后列举了进阶语法内容,如v-model原理、ref和$nextTick等。文章通过具体案例展示了父子组件间的双向通信实现方式,包括数据传递和事件触发的完整流程。

2026-03-02 08:51:36 661

原创 vue详解三 vue生命周期以及vue开发脚手架

vue生命周期讲解、vue脚手架怎么使用、什么是vue组件、vue结合echarts的使用

2026-02-24 08:40:04 1018

原创 vue详解二 compute与watch

vue中compute精讲、vue中watch细节讲解

2026-02-24 08:39:34 867

原创 vue详解一 vue入门以及vue常见指令

vue入门学习、创建vue实例、vue中this的理解、什么是响应式、vue中的双向绑定、vue中的指令与事件

2026-02-24 08:38:54 959

原创 微信小程序十 地址模块与SKU模块

uni-app插件市场的使用步骤

2026-02-09 22:41:09 644

原创 微信小程序九 登录模块与个人信息

小程序分包预下载 uni模态窗 个人信息修改 同步Store数据

2026-02-09 22:40:51 1049

hadoop安装配置及入门

这是hadoop在centos下的安装配置,以及基于hadoop的小案例实现

2018-09-21

weblogic史上最详细使用介绍

weblogic使用详细讲解,涵盖了从安装到配置,再到启动部署等详细步骤

2019-04-10

springboot整合MyBatisplus,实现分页查询、根据表自动生成代码、生成库里所有表对应的代码等功能

springboot整合MyBatisplus3.5.1及以上版本,使用分页插件实现分页查询、根据数据库表自动生成代码、生成库里所有表对应的代码等功能。实现MyBatisplus复杂查询时可以自定义sql功能。

2023-08-22

Springboot集成MyBatisplus并且实现自动生成代码模板

Springboot集成MyBatisplus,使用mysql5.7,执行自动生成代码的方法,即可根据表生成该表的所有代码。也可以生成所有表的相关代码。使用的MyBatisplus版本时3.5.1及以上版本。Springboot3.5.1以下的版本,生成代码的逻辑不一样。

2023-08-21

Android与servlet服务器交互

一个简单的Android客户端与servlet服务器端交互的例子,特别适合新手学习

2016-06-14

hadoop学习资料汇总

这里是hadoop初学者需要的所有资源,后期会不断更新,学习hadoop地址: https://blog.csdn.net/qq_33417321/article/details/82662973

2018-09-23

java程序员面试题汇总.7z

从初级到高级再到架构师的面试题,都有

2021-07-19

0-6年经验程序员java面试汇总

各种面试题都有

2021-07-19

SpringCloud.zip

SpringCloud,SpringCloud实战,Eureka注册中心,负载均衡,熔断,Zuul网关等

2019-08-18

Android与服务器端交互

Android端下载服务器端的图片,适合新手学习使用,望大神勿喷

2016-06-14

Android与servlet交互

android端与servlet服务器端交互,服务器端的HTML代码,适合新手学习

2016-06-14

linux最全总结

不管是做大数据开发,还是Java开发等,都不能完全抛开linux的学习,这里是工作了两年的java程序员总结的linux相关命令和配置,大神可以忽略;

2018-09-09

空空如也

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

TA关注的人

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