- 博客(188)
- 资源 (6)
- 收藏
- 关注
原创 RAG:让AI更聪明的“外接大脑“ | AI小知识
RAG(检索式增强生成)是一种让AI实时查阅外部知识库的技术,由检索器和生成器两部分组成。它解决了传统AI信息过时、记忆有限和容易臆造的问题,通过实时检索获取最新信息、突破记忆限制并提供依据。RAG的工作流程包括问题理解、知识检索、答案合成和来源标注,已在智能客服、教育辅导、医疗咨询等领域广泛应用,使AI回答更准确可靠。这项技术正在让AI变得更"靠谱",既能保持创造性,又能确保回答的真实性。
2025-07-31 22:46:04
322
原创 Vibe Coding:像挑歌一样写程序的魔法
Vibe Coding:用"感觉"生成代码的新范式 Vibe Coding将编程转变为"描述氛围"的过程,开发者只需向AI说明需求风格(如"小红书式刷图页面"),AI即可生成完整代码,类似音乐平台根据"海边氛围"推荐歌单。其核心是:1)通过自然语言prompt表达需求;2)AI基于海量开源项目理解生成代码;3)具备自修复能力。 该模式显著降低技术门槛,使非程序员也能快速创建应用(如生日网页、健身打卡程序等)。与传统编程相比,Vi
2025-07-31 02:45:00
412
原创 2025年上半年大型模型产品盘点
2025年上半年,大型语言模型领域呈现显著创新,OpenAI、Google和Anthropic等公司推出多款专业模型。OpenAI发布了增强推断能力的"o"系列和通用型GPT-4.5;Google迭代Gemini系列,强化编码和思考能力;Anthropic推出混合推断的Claude 3.7 Sonnet和Claude 4。中国公司DeepSeek和阿里巴巴也推出高性价比开放权重模型。市场趋势包括专业化推断、多模态扩展、上下文窗口增长以及成本效益提升,同时安全和伦理考量持续影响模型设计。
2025-07-23 03:30:00
979
原创 python如何生成二维码 | python小知识
摘要:本文介绍了使用Python的qrcode库生成二维码的方法。主要内容包括:(1)二维码的基本原理与结构特点;(2)qrcode库的安装与基本使用方法;(3)二维码颜色定制、添加logo等高级功能;(4)WiFi连接和vCard联系信息等实际应用案例。qrcode库支持多种参数调整和输出格式,能生成满足不同需求的二维码。文章还提供了代码示例,帮助读者快速掌握二维码生成技术,并建议进一步探索动态二维码和Web集成等进阶应用。
2025-07-06 11:46:01
600
原创 AI正在使软件发生根本变化 | AI大咖说
安德烈·卡帕西(Andrej Karpathy),一位在斯坦福大学、OpenAI和特斯拉都拥有深厚技术背景的知名人工智能专家,在Y Combinator的AI创业学校发表了题为《软件正在发生根本变化》(Software Is Changing (Again))的主题演讲 1。此次演讲的核心论点是,软件开发领域正在经历一场深刻的范式转变,我们已经迈入了“软件3.0”时代。在这个新时代中,自然语言成为了新的编程接口,而大型语言模型(LLMs)则承担了大部分的编程任务
2025-06-25 23:05:12
880
原创 LangChain 是变难用还是难用了? | AI应用开发
LangChain版本演进与架构转型分析 最新分析显示,LangChain在v0.2和v0.3版本中进行了重大架构调整,旨在解决开发者长期诟病的稳定性和复杂性痛点。框架从单体结构转向模块化设计,拆分为langchain-core、langchain和langchain-community等独立包,以降低依赖冲突风险。v0.2版本强化了LangGraph作为代理开发的首选方案,提供有状态管理和复杂工作流支持,而v0.3则进一步优化了生态系统和开发者工具。值得注意的是,LangChain表达式语言(LCEL)正
2025-06-25 02:00:00
788
原创 python web开发-Flask数据库集成
Flask-SQLAlchemy数据库集成实践指南 本文全面介绍了如何在Flask应用中使用Flask-SQLAlchemy进行数据库操作。主要内容包括:基础配置(安装、初始化、应用工厂模式)、数据模型定义(基础字段、关系模型)、CRUD操作、高级查询(分页、聚合、复杂过滤)、数据库迁移(Flask-Migrate)、性能优化(连接池、批量操作)以及测试配置。文章提供了完整的代码示例,涵盖了从简单查询到复杂关系处理的各类场景,并强调了生产环境中的最佳实践,如性能优化策略和测试数据库配置。通过本指南,开发者可
2025-06-21 14:09:55
605
原创 python web开发-Flask 蓝图(Blueprints)完全指南
Flask蓝图(Blueprint)是实现模块化开发的利器,本文全面解析了其核心概念与应用技巧。主要内容包括:蓝图的定义与优势、基础创建与注册方法、结构化项目布局、静态资源与模板管理、请求钩子机制、蓝图间协作方式。文章特别介绍了应用工厂模式与蓝图的结合使用,以及嵌套蓝图、动态URL前缀等高级技巧。最后总结了最佳实践,如合理项目结构、命名规范、适度拆分原则等。通过蓝图,开发者能构建模块化、可维护且易于扩展的Flask应用。
2025-06-21 14:04:35
1418
原创 python web开发-Flask表单处理
本文全面介绍了Flask中的表单处理技术,重点讲解了WTForms库的使用方法。内容包括基础HTML表单处理、WTForms表单创建与验证、表单渲染与处理流程、高级功能(如自定义验证器和文件上传)、数据库集成以及CSRF防护等关键知识点。文章还提供了代码示例展示如何在实际项目中应用这些技术,并介绍了表单测试的基本方法。通过学习本文,开发者可以掌握Flask中从基础到高级的表单处理技能,构建安全可靠的Web应用表单系统。
2025-06-20 04:00:00
640
原创 python web开发-Flask 应用实例(Flask App)完全指南
Flask应用实例创建与配置指南 本文详细介绍了Flask应用实例的核心知识,包括: 基础创建方法(最小应用和应用工厂模式) 多种配置方式(直接设置、对象加载、环境变量等) 常见配置选项(安全、数据库、性能优化) 应用上下文管理和生命周期控制 高级用法(多应用分发、子域名支持) 测试调试和生产部署的最佳实践 文章通过代码示例展示了Flask应用从开发到部署的全流程配置,强调了应用工厂模式和配置分离的重要性,为构建健壮的Flask应用提供了完整参考。
2025-06-20 03:00:00
483
原创 python web开发-Flask 文件上传与下载完全指南
本文详细介绍了Flask框架中文件上传与下载的实现方法。首先讲解了基础文件上传的表单设计和后端处理,强调了安全防护措施如secure_filename和文件类型限制。接着展示了文件下载功能,包括从服务器下载和动态生成文件。文章还重点讨论了安全防护策略,如文件名处理和内容验证,并提供了与AWS S3云存储的集成方案。最后提及性能优化方向,为开发者提供了完整的Flask文件操作解决方案。
2025-06-18 05:00:00
825
原创 python web开发-Flask RESTful API 构建完全指南
本文全面介绍了使用Flask构建RESTful API的核心技术。主要内容包括:1)JSON响应处理,展示了基本响应格式、状态码设置和错误处理;2)API规范设计,涉及统一响应格式、版本控制和分页实现;3)蓝图组织架构,说明如何拆分API路由到不同模块;4)跨域解决方案,对比Flask-CORS扩展和手动处理方法;5)认证授权机制,涵盖JWT和API密钥两种方式。通过规范的API设计模式和模块化组织,开发者可以构建高效、易维护的Flask API服务。
2025-06-18 02:30:00
990
原创 python web开发-Flask 重定向与URL生成完全指南
Flask重定向与URL生成指南摘要:本文详细介绍了Flask框架中的redirect()和url_for()函数使用技巧。内容包括基础重定向(302/301状态码)、URL动态生成方法、高级应用如外部域名重定向和蓝图URL生成。特别强调了安全实践,如防范开放重定向漏洞和签名URL技术。文章还提供了性能优化建议(URL缓存)和测试方法,最后总结了12条最佳实践,包括优先使用url_for、编写重定向测试用例等。这些技术帮助开发者构建安全、高效且用户友好的Flask应用导航系统。
2025-06-17 22:09:07
749
原创 BeeHive模块化设计深度解析 | python小知识
BeeHive框架解析:阿里iOS模块化解决方案核心架构 本文深入剖析了BeeHive模块化框架的设计原理与实现机制。该框架采用六边形架构思想,包含四大核心组件: 模块(Module) - 功能封装的基本单元,支持完整生命周期管理 服务(Service) - 通过协议实现的模块间通信机制 事件总线(Event) - 提供跨模块消息通知能力 上下文(Context) - 全局环境共享容器 框架特色包括: • 服务注册发现机制支持多版本管理 • 事件总线实现优先级调度和异步处理 • 依赖倒置原则确保模块解耦 •
2025-06-17 00:12:07
1024
原创 Claude 4 升级:从问答助手到任务执行者 | AI大咖说
Claude 4 已经不再是单纯的智能问答系统了,而是能够独立完成复杂项目的强执行力工具。我相信,在未来几年内会出现第一家只有一个人类员工的公司。如果你准备好与 AI 共事了,请做好准备迎接新的挑战与机遇。
2025-06-01 15:49:49
303
原创 python web 开发-Flask中间件与请求处理钩子
本文全面介绍了Flask框架中的中间件和请求处理钩子机制。主要内容包括:Flask请求处理生命周期中各阶段钩子的作用和使用方法,重点讲解了before_request、after_request和teardown_request三种核心钩子的实现方式与应用场景;深入解析了g对象在请求上下文中的使用方法;展示了自定义WSGI中间件和装饰器中间件的实现方案;并提供了请求耗时统计、全局异常处理等高级应用实例。文章最后还分享了钩子执行顺序验证、条件注册等调试技巧以及CSRF防护等安全实践,帮助开发者更好地利用Fla
2025-05-27 03:30:00
570
原创 python web 开发-Flask Session会话管理完全指南
Flask会话管理完全指南:从基础操作到安全实践 本文全面介绍Flask的会话管理机制,涵盖核心概念、基本操作和关键安全配置。Flask会话默认使用签名cookie实现,允许服务器在不同请求间安全存储用户数据。内容包含会话设置/获取方法、配置选项(如过期时间、Cookie安全属性)、服务器端存储方案,以及重要安全实践(SECRET_KEY管理、防篡改措施)。特别强调生产环境中的安全配置,包括HTTPS传输、防XSS和CSRF设置。同时提供性能优化建议、常见问题解决方案和安全审计清单,帮助开发者构建安全可靠的
2025-05-27 02:30:00
897
原创 python web 开发-Flask-Login使用详解
摘要:Flask-Login是Flask框架的认证扩展,提供用户会话管理、登录/注销视图保护等核心功能。文章详细介绍了其安装配置、用户模型要求(需继承UserMixin并实现必要方法)、用户加载器设置、登录注销实现(使用login_user/logout_user)、视图保护(@login_required装饰器)以及"记住我"功能。还涵盖会话保护级别、自定义未授权处理等安全特性,强调应结合HTTPS和强密码哈希保障生产环境安全。该扩展通过简洁接口满足从基础到中等复杂的认证需求,是Fla
2025-05-24 15:52:35
1222
原创 python web开发-Flask模板引擎Jinja2完全指南
本文全面介绍Flask框架默认模板引擎Jinja2的核心功能与使用技巧。内容涵盖基础语法(变量渲染、控制结构)、模板继承机制、常用过滤器、宏定义等核心概念,并深入讲解模板上下文处理、安全防护措施和性能优化方法。文章通过丰富代码示例演示了Jinja2在Web开发中的实际应用,包括自定义过滤器/测试、空白控制等高级特性。适合从入门到精通的各阶段开发者参考学习,帮助构建更安全高效的Flask应用模板系统。
2025-05-24 15:49:55
1297
原创 python web flask专题-Flask入门指南:从安装到核心功能详解
本文详细介绍了Flask框架的入门知识,从安装配置到核心功能的使用。首先,通过pip安装Flask并创建最小应用,展示了基本项目结构。接着,讲解了应用实例的配置方法,包括工厂模式和常用配置项。随后,深入探讨了路由系统的定义,包括静态路由、动态路由、HTTP方法处理以及URL生成。最后,介绍了请求与响应的处理,包括获取请求数据、返回不同类型的响应、处理文件上传和Cookie操作。通过本文,读者可以掌握Flask的基础知识,为进一步开发Web应用打下坚实基础。
2025-05-23 13:15:40
1517
原创 Linux集群管理利器:ClushShell使用详解
高效性:并行执行大幅提升管理效率便捷性:简化了多主机操作流程灵活性:支持主机组、文件分发等高级功能可扩展性:适合从小规模到大规模集群快速完成集群软件部署批量执行系统更新和维护收集和分析多主机日志实现自动化运维任务ClushShell的学习曲线平缓,但功能强大,是Linux系统管理员工具箱中不可或缺的工具之一。
2025-05-23 02:00:00
743
原创 Docker 网络配置完全指南:从基础到高级实践
本文是Docker网络配置的全面指南,涵盖了从基础到高级的实践内容。首先介绍了Docker网络的核心价值,包括隔离性、可连通性、灵活性、安全性和可扩展性。接着详细讲解了Docker的默认网络架构,包括预置网络类型、查看网络详情等。文章还提供了基础网络配置的实战操作,如容器端口映射、自定义桥接网络和主机网络模式。在高级网络配置部分,讨论了容器间专用网络、多网络连接和DNS与服务发现。最后,针对生产环境,提出了网络性能优化、网络安全配置和跨主机网络方案的实践建议,并提供了常见问题的排查方法。
2025-05-12 03:45:00
1960
原创 Dockerfile 完全指南:从入门到最佳实践
Dockerfile 是构建 Docker 镜像的核心工具,通过一系列指令实现自动化、可重复的镜像构建。本文从基础到高级,详细介绍了 Dockerfile 的常用指令(如 FROM、RUN、COPY、WORKDIR 等)及其最佳实践,包括多阶段构建、合理排序指令、最小化镜像层等。此外,还探讨了高级功能如 ARG、VOLUME、HEALTHCHECK 等,并提供了完整示例和安全实践建议。通过掌握这些内容,开发者可以高效构建轻量、安全且可维护的 Docker 镜像,简化部署流程,确保环境一致性。
2025-05-11 17:39:47
1438
原创 Docker Compose 完全指南:从入门到生产实践
Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具,通过一个 YAML 文件配置应用服务,简化多容器管理并实现开发环境的标准化。其核心优势包括快速环境搭建、服务依赖管理和配置即代码等。Compose 文件结构包括版本声明、服务定义和持久化卷配置,版本选择需根据项目需求。核心服务配置涉及镜像与构建、端口映射、环境变量和数据持久化。网络配置策略包括默认网络行为和自定义网络,支持服务依赖与健康检查。常用命令包括启动、查看状态、停止和调试等。生产环境最佳实践涵盖安全配置、资源约束
2025-05-11 17:35:29
942
原创 使用Neomodel:Python中的Neo4j ORM工具指南 | AI应用开发
Neomodel是一个Python ORM工具,专为Neo4j图数据库设计,提供了类似Django ORM的API,简化了节点和关系的定义与操作。通过Neomodel,开发者可以使用Python类和方法进行数据模型定义,支持CRUD操作、复杂查询、事务处理和数据库迁移。它还提供了批量操作和索引优化等功能,提升了开发效率和数据访问性能。Neomodel不仅抽象了Cypher查询的复杂性,还保留了Neo4j的强大功能,适合Python开发者构建基于Neo4j的应用。
2025-05-10 05:00:00
455
原创 Neo4j从入门到精通:打造高效知识图谱数据库 | AI应用开发
本文介绍了知识图谱及其存储工具Neo4j的基本概念、特点、安装步骤及使用方法。知识图谱以图的形式存储数据,节点表示实体,边表示关系,适合处理关系密集型数据。Neo4j作为领先的图数据库,具有高性能、灵活的数据模型、支持Cypher查询语言、事务特性和扩展性等优势。文章详细讲解了Neo4j的安装过程,并通过Cypher语言演示了如何创建、查询节点和关系,以及如何执行高级查询。Neo4j在知识图谱构建和复杂关系查询中表现出色,适合大数据和人工智能领域的应用。
2025-05-10 02:30:00
1054
原创 python数据分析(十二):pandas常用设置一览
Pandas 提供了丰富的配置选项,允许用户自定义数据的显示和行为方式。本文全面介绍了 Pandas 中最重要的选项和设置,包括显示精度控制、最大行列显示设置、显示截断设置、显示样式设置等。通过实际示例,展示了如何配置这些选项以满足不同的需求。此外,还介绍了如何获取当前设置、使用上下文管理器临时修改设置,以及在实际应用中的配置案例,如数据分析报告和 Jupyter Notebook 优化。掌握这些配置技巧可以显著提高数据分析和展示的效率与效果。
2025-05-09 04:00:00
532
原创 python数据分析(十一):Pandas 时间数据处理
Pandas 提供了强大的时间序列处理功能,适用于各种时间数据分析需求。本文全面介绍了 Pandas 中的时间数据处理方法,包括时间数据的创建、转换、索引、重采样以及时区处理等。通过实际代码示例,展示了如何从字符串创建时间戳、生成时间范围、访问时间组件、进行时间切片、使用时间偏移、重采样数据、处理时区以及计算时间差等操作。此外,还通过股票数据和销售数据的案例,展示了这些功能在实际应用中的使用。Pandas 的时间序列功能灵活且全面,能够有效提升时间数据分析的效率。
2025-05-09 03:30:00
779
原创 python数据分析(十):Pandas缺失值处理(Missing Data)
检测缺失值:使用isna()或isnull()方法可以轻松识别数据中的缺失值删除缺失值dropna()方法提供了灵活的删除选项,可以按行或列删除填充缺失值fillna()方法支持多种填充策略,包括固定值、前向/后向填充、统计值填充等插值方法提供了更智能的填充方式,如线性插值、多项式插值等选择哪种方法取决于具体的数据场景和分析需求。当缺失值很少时,可以直接删除当数据有明确趋势时,插值法是更好的选择对于分类数据,使用众数或固定值填充可能更合适。
2025-05-07 06:00:00
434
原创 python数据分析(九):Pandas 分类数据(Categorical Data)处理
有序分类:有明确的顺序关系(如:小、中、大)无序分类:没有顺序关系(如:红、绿、蓝)# 自定义排序顺序print("\n自定义顺序排序:\n", df.sort_values('grade'))分类数据基础分类数据表示有限且固定的可能值集合分为有序分类和无序分类两种类型创建分类数据可以通过直接创建使用构造函数提供更多控制可以指定类别顺序创建有序分类分类数据操作categoriesas_ordered排序与分组分类数据保持定义的顺序进行排序分组操作可以利用分类信息提高效率。
2025-05-07 02:45:00
1284
原创 python数据分析(八):Pandas 文本数据处理
字符串基本操作通过.str访问器使用字符串方法支持大小写转换、长度计算等基本操作字符串连接 (cat)连接Series中的字符串连接不同Series或DataFrame列字符串分割 (split)按分隔符分割字符串可将分割结果扩展为多列字符串替换 (replace)简单字符串替换支持正则表达式替换字符串提取 (extract)使用正则表达式提取特定模式可命名提取组字符串重复 (repeat)重复字符串指定次数可为不同元素指定不同重复次数其他实用方法contains。
2025-05-02 17:34:23
839
原创 python数据分析(七):Pandas 数据变形与重塑
透视表操作pivot: 简单的长转宽操作,不支持聚合: 支持聚合的透视表,适合处理重复值堆叠操作stack: 将列转换为行,产生多级索引unstack: 将行转换为列,是stack的逆操作融合操作melt: 将宽格式数据转换为长格式: 更灵活的宽变长转换方法虚拟变量转换: 将分类变量转换为虚拟变量: 将虚拟变量转换回分类变量爆炸操作explode: 将列表形式的元素拆分为多行交叉表crosstab: 计算两个或多个因素的简单交叉表分箱操作cut: 将连续变量离散化为区间因子化操作。
2025-05-02 17:18:00
828
原创 python数据分析(六):Pandas 多数据操作全面指南
merge()是最灵活的数据合并方法,支持各种SQL风格的连接操作支持内连接、左连接、右连接和外连接可以处理多键合并和复杂的合并条件join()是基于索引的合并便捷方法默认按索引连接语法比merge()更简洁但功能较少concat()用于简单堆叠数据可以沿行(垂直)或列(水平)方向连接适合结构相同的数据集合并compare()用于比较两个DataFrame的差异可以高亮显示差异需要Pandas 1.1.0及以上版本性能考虑对于大型数据集,merge()通常比join()更快。
2025-04-29 22:12:46
1341
原创 Docker技术入门:原理、功能与实践指南
基于Ubuntu 20.04# 维护者信息# 更新包索引并安装nginx# 暴露80端口EXPOSE 80# 容器启动时运行nginx"]:指定镜像名称:使用当前目录下的Dockerfile环境一致性:通过容器确保开发、测试和生产环境的一致性快速部署:秒级启动时间,提高开发效率资源高效:共享内核,减少资源开销可移植性:一次构建,到处运行微服务友好:天然适合微服务架构通过本文的介绍,您应该已经掌握了Docker的基本原理、核心功能和使用方法。
2025-04-29 02:45:00
721
原创 python数据分析(五):Pandas 数据检索技术
布尔索引是最基础的条件查询方式,适合简单条件筛选query()方法提供了更简洁的语法,特别适合复杂条件查询分组聚合(groupby)是数据分析的核心操作,可以按不同维度汇总数据透视表(pivot_table)提供了更灵活的多维数据汇总能力高级检索技巧如isin(), between(), str访问器等可以处理更复杂的查询需求性能优化技巧如query()和eval()可以提升大数据集的处理效率Pandas提供了丰富而强大的数据检索功能,掌握这些技术可以显著提高数据分析的效率和灵活性。
2025-04-28 23:56:05
612
原创 数据分析(四):Python Pandas数据输入输出全流程指南
文件格式支持结构化数据:CSV、Excel半结构化数据:JSON高效二进制格式:Parquet、HDF5、Feather数据库交互使用SQLAlchemy作为统一接口支持MySQL、PostgreSQL等主流数据库分块处理大型表数据大数据处理chunksize参数分块读取指定dtype减少内存占用使用高效二进制格式存储中间结果存储选择建议快速读写:Feather长期存储:Parquet或HDF5数据交换:CSV或JSON。
2025-04-26 02:00:00
1037
原创 python数据分析(三):Python Pandas数据类型查看与转换
使用apply进行自定义转换else:""""""数据类型查看dtypes查看DataFrame各列类型dtype查看Series类型分析内存占用类型转换方法astype()基本类型转换日期时间转换安全数值转换category类型节省内存自动选择最佳类型高级技巧自定义转换函数读取数据时指定类型使用分类数据优化性能正确理解和处理Pandas数据类型是数据预处理的关键步骤。合理的数据类型不仅能保证计算正确性,还能显著提高内存使用效率和计算速度。
2025-04-23 06:00:00
889
原创 python数据分析(二):Python Pandas索引技术详解
基础索引[].loc.iloc) 适合简单的数据访问布尔索引提供了强大的条件筛选能力多层索引让高维数据的组织和分析变得更加直观和高效掌握这些索引技术是成为Pandas高级用户的关键步骤。在实际应用中,应根据数据特点和分析需求选择合适的索引方式,并遵循最佳实践以获得更好的性能和可读性。通过合理使用索引,我们可以更高效地处理和分析数据,为数据科学工作流打下坚实基础。
2025-04-23 00:15:00
619
原创 python数据分析(一):Python Pandas库概述与eries与DataFrame创建
Series是带标签的一维数组,适合存储单列数据和标签信息可以从列表、字典、标量值创建自动对齐索引是Pandas的强大特性DataFrame是二维表格型数据结构,是数据分析的核心可以从字典、列表、NumPy数组、Series字典等多种方式创建支持自定义索引和列名可以从各种文件格式导入数据选择创建方法数据来源(内存数据结构还是外部文件)是否需要自定义索引数据维度(一维用Series,二维用DataFrame)Pandas灵活的数据结构创建方式使其成为数据科学工作流中不可或缺的工具。
2025-04-22 13:05:13
791
原创 python数据分析-开篇
在《增长黑客》提到的增长团队中重要成员是数据分析师;数据分析师从数据角度抽丝剥茧,不断验证,A/B测试,找到问题,提出增长建议。数据分析师就像侦探一样,找线索,求真相, 是艰难但富有挑战的工作。在当前企业数字化背景下,先有数字化,下一步就是在数据中发现有价值的信息,帮助企业成长。你想发现数据背后的真相吗?
2025-04-22 03:45:00
312
常用聚类算法原文(DBSCAN等)
2009-11-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人