- 博客(43)
- 收藏
- 关注
原创 数据库入门:从零开始构建你的第一个数据库
这篇博客介绍了数据库的基础操作知识。从创建数据库和表开始,讲解了如何使用SQL语句进行数据插入、更新和删除等基本操作,以及如何添加约束和索引来确保数据完整性。文章还介绍了常用的数据查询方法,包括基本查询、排序和聚合查询等功能。适合数据库初学者和开发者学习基础的数据库管理技能,掌握数据存储、访问和维护的基本方法。
2025-08-07 21:09:17
398
原创 Vue3 中的 Pinia:现代状态管理的大佬
本文介绍了Vue3推荐的状态管理库Pinia。Pinia作为轻量级状态管理工具,可高效实现跨组件状态共享。文章详细讲解了Pinia的安装初始化、Store创建及使用方式,对比了选项式API和组合式API的应用场景,并探讨了其响应式特性、模块化设计等高级功能。同时提供了最佳实践建议:小型项目推荐Provide/Inject,中大型项目优先使用Pinia。Pinia凭借其轻量易用、调试友好等优势,成为Vue3状态管理的理想选择。
2025-08-07 16:02:38
681
原创 流式输出 vs 非流式输出
摘要:文章对比分析了流式与非流式数据传输的核心差异与实现方式。流式输出采用分块实时传输,具有低延迟、低内存占用特点,适合AI聊天、实时监控等场景;非流式输出则一次性传输完整数据,更适合小型JSON或静态配置。技术实现上,后端通过SSE/WebSocket实现流式传输,前端使用EventSource处理实时数据;而非流式采用传统HTTP请求。性能测试显示,处理10MB数据时流式响应仅70ms,远快于非流式的9200ms。文章建议根据数据规模、实时性需求和内存限制选择合适方案,并提供了生产环境中的超时控制和数据
2025-08-06 22:49:09
244
原创 Vue3 组件传参全解析:父子、非父子组件间的数据传递
Vue3组件传参方式全解析:从父子组件到全局状态管理。父子组件通过props(父传子)和emit(子传父)实现通信,v-model简化双向绑定。跨层级组件使用provide/inject。非父子组件推荐Pinia进行全局状态管理,也可选用mitt事件总线或浏览器存储。最佳实践建议:小型项目用provide/inject,中大型项目首选Pinia。合理选择传参方式可显著提升开发效率和代码可维护性。(149字)
2025-08-05 22:43:13
673
原创 Vue3核心语法进阶(Props)
Props 就是父组件传给子组件的数据,相当于“父子之间的传话筒”。买什么?—— 牛奶买几瓶?—— 2 瓶什么牌子?—— 蒙牛这些信息,就是Props!-- 父组件 App.vue --><template><BuyMilkitem="牛奶"count="2"brand="蒙牛"/>-- 子组件 BuyMilk.vue -->// 接收父组件传来的数据</script><template>
2025-08-05 22:42:23
769
原创 Vue3核心语法进阶(Hook)
Vue3自定义Hook与Props详解:提升代码复用与组件通信 本文介绍了Vue3中的两个核心概念:自定义Hook和Props。 自定义Hook: 本质是以use开头的函数,封装可复用的逻辑 优势:逻辑复用、代码解耦、易于测试 示例:用户信息Hook(useUser)和本地存储Hook(useLocalStorage) 最佳实践:命名规范、合理拆分、类型支持 Props详解: 父子组件通信的单向数据流机制 定义方式:数组简单写法或推荐的对象写法 核心特性:只读性,修改需通过emit通知父组件 语法糖:v-m
2025-08-04 23:31:36
751
原创 Vue3核心语法进阶(生命周期)
Vue3生命周期详解:从创建到销毁的完整指南 本文将Vue3组件的生命周期比作人的一生,分为三大阶段:创建(出生)、更新(成长)和销毁(退休)。重点介绍了核心生命周期钩子函数:setup()(替代Vue2的beforeCreate/created)、onMounted()(DOM挂载完成)、onUpdated()(数据更新后)和onUnmounted()(组件销毁前清理资源)。文章还提到了其他钩子如onBeforeUpdate和keep-alive相关的onActivated/onDeactivated,并
2025-08-04 23:04:49
1493
2
原创 Vue3核心语法进阶(computed与监听)
本文深入讲解Vue3中的计算属性(computed)和监听器(watch/watchEffect)的使用方法。计算属性部分介绍了只读和可读写两种形式的实现,展示了如何通过getter/setter响应数据变化。监听器部分详细说明了如何监听ref/reactive定义的数据,包括基本类型、对象类型及其属性的变化,并对比了手动监听(watch)和自动监听(watchEffect)的区别。文章通过具体代码示例,演示了深度监听、多数据监听等高级用法,帮助开发者掌握Vue3响应式系统的核心功能。
2025-08-02 22:42:31
863
原创 Vue3核心语法基础
Vue3 CompositionAPI 学习指南摘要 Vue3 的 CompositionAPI 解决了 Vue2 中功能代码分散的问题,通过 setup() 函数将所有相关逻辑集中管理。核心特性包括: 响应式处理:ref 用于基本类型,reactive 用于对象类型 语法糖:<script setup> 简化代码结构 解构响应式对象:使用 toRef/toRefs 保持解构后的响应性 计算属性:computed 实现自动更新 实战案例:通过待办事项和个人资料卡示例演示完整应用 进阶功能:购物车
2025-08-02 21:44:51
733
原创 教你一步步学会ai人工智能助手对话(超级详解)
本文介绍了一个零成本AI助手项目的开发过程,主要包括注册登录功能和对话功能实现。前端使用HTML/CSS/JavaScript构建响应式界面,后端采用Python的FastAPI框架与SQLite数据库。项目实现了用户名密码注册登录、邮箱验证码登录两种方式,包含密码强度校验、验证码发送等安全措施。数据库设计包含用户表、会话表和消息表,支持用户历史对话管理。后端提供RESTful API接口,通过Axios实现前后端通信,并采用密码哈希存储保障安全性。项目还展示了SMTP邮件服务的集成方法,用于发送验证码邮件
2025-07-23 17:20:42
897
原创 前端页面 Javascript运算符与循环
本文介绍了JavaScript中的运算符和循环结构。运算符部分包括:1)算术运算符(+、-、*、/、%等);2)比较运算符(==、===、>、<等);3)逻辑运算符(&&、||、!);4)赋值运算符(=、+=等);5)位运算符。重点讲解了类型转换在运算符中的影响,如==与===的区别。循环部分详细说明了:1)for循环的三部分结构;2)while和do...while循环的区别;3)for...in遍历对象属性;4)for...of遍历可迭代对象;5)控制语句break和cont
2025-07-07 17:33:52
1003
原创 前端页面Javascript数组
JavaScript数组是存储多值的数据结构,支持多种数据类型。文章详细介绍了数组的声明方式(数组字面量和Array构造函数)、初始化方法(逐项赋值和fill方法),以及常见操作(增删改查、遍历、排序、合并等)。还探讨了数组转换、复制比较、稀疏/密集数组、类数组对象等高级特性,并列举了实际应用场景。通过示例代码展示了各种数组方法的使用,帮助开发者全面掌握JavaScript数组的操作技巧。
2025-06-20 20:20:27
695
1
原创 前端页面Javascript进阶DOM与BOM
DOM是文档对象模型,用于操作HTML和XML文档。文章系统介绍了DOM基础知识,包括节点类型、元素访问方法(如getElementById、querySelector等)、元素创建与修改(createElement、innerHTML等)、删除元素(removeChild、remove)和事件处理(addEventListener)。还提供了实际案例,如表单验证和性能优化技巧(使用文档片段)。掌握这些DOM操作技能对构建交互式网页至关重要,需要不断练习以提升开发效率。
2025-06-19 19:54:04
351
原创 Python FastAPI详解
FastAPI是一款现代高性能Python Web框架,具有以下核心优势:1)基于ASGI支持异步处理,性能接近Node.js/Go;2)自动生成交互式API文档;3)通过类型提示和Pydantic实现强类型校验;4)内置安全机制。开发流程包括:安装框架、创建FastAPI实例、定义路由(如@app.get)和处理函数、使用Pydantic模型校验请求体。可通过uvicorn启动服务,支持自动重载。典型代码结构包含依赖导入、应用实例化、路由定义三部分,结合异步编程(async/await)处理高并发场景,特
2025-06-17 22:52:26
778
原创 前端页面Javascript函数
函数声明使用function关键字来定义一个函数。这是最常见的定义函数的方式。");// 输出 "Hello, Alice!JavaScript 函数是编程的核心概念之一,它提供了一种封装和复用代码的方式。通过理解函数的定义、调用、参数、返回值、作用域、闭包以及高阶函数等概念,我们可以更加高效地使用函数来解决各种编程问题。希望这篇文章能帮助你全面掌握 JavaScript 函数的相关知识。函数可以通过声明、表达式和箭头函数三种方式定义。
2025-06-16 22:11:28
705
原创 Python 进程与协程与线程(详解)
特性并行(Parallelism)并发(Concurrency)执行方式同时执行交替执行资源占用需要更多硬件资源需要较少硬件资源适用场景CPU 密集型任务I/O 密集型任务调度方式操作系统或硬件调度软件调度(如事件循环)实现方式多进程或多线程协程或事件驱动核心概念同时性交替性。
2025-05-25 10:45:18
1061
原创 网页 CSS美化2(详解)
盒子模型是网页布局的基础,将页面中所有元素都看作是一个盒子,盒子都包含以下几个属性:width 宽度 height高度 border边框 padding内边距 margin 外边距。
2025-05-24 14:08:46
1288
原创 Python中的数据库
这段代码展示了如何使用 Python 的sqlite3模块来创建数据库、创建表、插入数据、查询数据并关闭连接。下面单独将数据库中的增删改查进行讲解增删改查增(插入数据):使用向数据库中添加新记录。# 连接数据库# 游标# 插入数据)',('小牛',18,'A')))',('小羊',19,'B')))',('小狗',20,'C'))#关闭连接插入代码使用execute方法执行了一条 SQL 插入命令,向students表中插入了一条记录。?'小狗'是学生的姓名。20是学生的年龄。'C'
2025-05-23 09:39:29
1029
原创 Python 计算机网络TCP网络应用程序开发
客户端程序import socket # 导入socket模块,用于创建和管理网络连接# 创建socket对象# socket.AF_INET表示使用IPv4地址# socket.SOCK_STREAM表示使用TCP协议# 建立与服务器的连接# connect_ex()方法用于建立连接,返回值为0表示连接成功,非0表示连接失败# '127.0.0.1'是服务器的IP地址,9099是服务器监听的端口号# 检查连接是否成功print("连接成功")# 发送数据。
2025-05-20 08:25:49
1093
原创 前端页面 JavaScript数据交互
学习JavaScript为前端设置动态效果,实现交互。JavaScript是一种广泛应用于网页开发的脚本语言,
2025-05-19 16:59:43
727
原创 Python 闭包与装饰器
闭包是指有权访问另一个函数作用域中变量的函数。简单来说,即使该函数已经执行完毕,其作用域内的变量也不会被销毁,而是会被闭包所引用,从而可以在函数外部继续访问这些变量。
2025-02-14 16:32:44
963
原创 Python 面向对象的三大特征
本篇讲解面向对象的三大特征(封装,继承,多态),还有比较细致的(类属性类方法,静态方法),分步骤讲解,比较适合理清楚三大特征的思路。
2025-02-13 14:18:47
2343
2
原创 Python 面向对象(类,对象,方法,属性,魔术方法)
编程思想:面向过程关注的是解决问题的步骤和过程,而面向对象关注的是对象及其之间的交互。代码组织:面向过程的代码以函数为中心,函数之间的调用关系构成程序的执行流程;面向对象的代码以类和对象为中心,通过对象之间的消息传递来实现程序的功能。可维护性和可扩展性:面向过程的代码在处理复杂问题时,随着功能的增加,函数之间的调用关系会变得复杂,导致代码的可维护性和可扩展性降低;面向对象通过封装、继承和多态等特性,可以更好地组织代码,提高代码的可维护性和可扩展性。
2025-02-11 20:43:58
1206
1
原创 Python 高阶函数(详解)
1、当定义函数时,函数的参数是一个函数,那么定义的这个函数可以称为高阶函数。2、调用高阶函数时需要特别注意,由于高阶函数中参数类型是个函数,因此在进行调用时,我们只需要传递函数的名字即可,而不是进行函数调用。3、函数作为参数的类型时,可以是内置的函数,如abs,也可以是其它模块下的函数,如sqrt,也可以是自定义的函数,如num_num,像上面代码中num_num函数的函数体只有一行代码,可以用lambda表达式的方式写。
2025-02-10 22:49:30
1424
1
原创 Python 异常捕获(详解)
上一篇感觉太多了,应该看完文件和os模块就不太想看最后的异常捕获了,所以这一章单独拿出来写异常捕获,而且里面大部分代码我都有进行详细的解释,各位肯定可以读懂滴拉~~
2025-01-15 18:12:38
1357
原创 Python 文件和异常捕获(详解)
虽然mode文件操作模式很多,但是我们只需要记住3个字符即可。r、w、ar+、w+、a+,代加号,功能全,既能读,⼜能写(区别在于指针到底指向不同)rb、wb、ab,代b的字符,代表以二进制的形式对其进行操作,适合读取文本或二进制格式⽂件,如图片、音频、视频等格式rb+、wb+、ab+,代加号,功能全,既能读,又能写(区别在于指针到底指向不同)
2025-01-14 10:06:56
1402
原创 Python 模块,包(详解)
由以上运⾏结果可知,当我们把⼀个变量赋予给另外⼀个变量时,其两者指向的内存地址相同。就说明a和b指向了同⼀块内存空间如果当我把a赋值给了b,然后又将a改变,a和b会有什么样的变化呢?
2025-01-07 00:03:57
1166
原创 Python 元组(详解)
有序性(索引下标),异构,可重复,元组的元素不可改变!(可以作为字典的键(key)),可切片,可遍历,元组可以解包基本语法:元组名=(元素)元组可以存储多个数据且元组内的数据是不能修改的.元组:元组是不可变的,适合存储不应改变的数据。所以它们可以用作字典的键,元组适合存储不改变的数据,数据库里面的地名,城市名,等等。由于元组中的数据不允许直接修改,所以其操作⽅法⼤部分为查询⽅法。元组[索引] 根据 索引下标 查找元素index():查找某个数据,如果数据存在返回 对应的下标,否则报错。
2024-12-25 14:57:48
776
原创 Python 列表(详解)
列表的特点:有序,可重复,长度可变(增删改查),异构,可切片,可遍历。列表的基本语法:列表名=[元素]列表的作⽤是⼀次性存储多个数据,并且列表可以存储不同类型的数据。
2024-12-23 00:36:59
1219
原创 Python 函数(详解)
当你在写程序时,有一个模块一直用的是相同的的代码,所以我们为了提高代码的效率和代码的重用,所以把具有独立的代码块组织为一个小模块,我们把他叫为函数。在 Python 中,函数是一段可重复使用的代码块,用于执行特定的任务。它通过def关键字来定义函数。")解释一下上面代码:这里def是定义函数的关键字,greet是函数名,后面的括号()可以包含参数(这个函数没有参数),最后的冒号表示函数体的开始。函数体是缩进的代码块,这里只有一行代码"),它会在函数被调用时执行。
2024-12-22 15:46:35
1028
原创 Python 集合(详解)
Python中的集合(set)与数学中的集合概念类似也是用于保存不重复的元素。它有可变集合(set)和不可变集合(frozenset)两种。在形式上,集合的所有元素都放在一对大括号中,两个相邻元素间使用逗号“”分隔。集合最好的应用就是去重,因为集合中的每个元素都是唯一的。
2024-12-21 16:27:20
1612
原创 Python 字典(详解)
popitem()是与pop()不同的哟!不要混淆了,而且列表,元组,集合里面都没有popitem()这个函数,所以popitem。
2024-12-20 13:58:40
3001
原创 Python中的列表,元组
反向索引:从字符串的末尾开始,从 - 1 开始计数,即最后一个字符的索引是 - 1,倒数第二个字符的索引是 - 2,以此类推。正向索引:从字符串的开头开始,从 0 开始计数,即第一个字符的索引是 0,第二个字符的索引是 1,以此类推。元组的切片具体要求与列表的切片,字符串的切片都相同(可向上翻找到列表,字符串的切片有详细解析)extend():列表结尾追加数据,如果数据是⼀个序列, 则将这个序列的数据逐⼀添加到列表。列表的特点:有序,可重复,长度可变(增删改查),异构,可切片,可遍历。
2024-12-16 15:07:17
664
原创 Python字符串切片
字符串的操作方法:字符串中的查找方法:find() :检测某个⼦串是否包含在这个字 符串中,如果在返回这个⼦串开始的位置下标,否则则返回-1。index():检测某个⼦串是否包含在这个字符串中,如果在返回这个⼦串开始的位置下标,否则则报异常。
2024-12-09 13:45:14
824
原创 Python(for循环)案例
(3)但是将能被3整除的数不输出:根据题目意思用if语句,语句判断将能被3整除的数,用continue语句进行跳过,不输出。(3)将不能被3整除的输出,根据题目所示,用if语句,判断将不能被3整除的进入if语句将其输出。(1)1-100的数:用range()函数生成一个1-100的整数序列。(1)1-100的数:用range()函数生成一个1-100的整数序列。(2)将1-100的数输出:用for循环进行遍历将1-100输出。(2)将1-100的数输出:用for循环进行遍历将1-100输出。
2024-12-02 23:37:27
1462
原创 Python中的for循环
1.for循环里面的变量名可以自己定义2.for循环结构是用于遍历后面的序列:序列可以为(字符串、列表、元组、集合以及字典)类型数据的遍历。
2024-11-28 20:07:59
1426
原创 Python(简单)if.else语句
参与游戏的⻆⾊有两个(玩家 与 电脑),玩家⼿⼯出拳,电脑随机出拳,根据⽯头剪⼑布判断输赢。玩家:player(玩家⼿⼯输⼊剪⼑0、⽯头1、布2)电脑:computer(随机出拳)输赢结果很重要,有三种情况:① 玩家赢☆ player:⽯头 赢 computer:剪⼑☆ player:剪⼑ 赢 computer:布☆ player:布 赢 computer:⽯头② 平局只要player 与 computer出拳相等,就代表平局③ 电脑赢如果不满⾜以上两个条件,则电脑获胜!
2024-11-25 13:06:40
1715
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人