- 博客(36)
- 收藏
- 关注
原创 基于LlamaIndex构建RAG应用
大语言模型(Large Language Model, LLM)是指具有大量参数的深度学习模型,通常基于Transformer架构。这些模型通过在海量文本数据上进行预训练,学会了语言理解和生成的能力。核心特征:参数规模:从数亿到数千亿甚至万亿级别训练数据:涵盖互联网上几乎所有公开文本计算资源:需要数千张GPU/TPU进行训练核心能力:语言理解、内容生成、知识应用、推理能力。
2026-01-04 14:09:15
705
原创 JWT鉴权的实现:从原理到 Django + Vue3
JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在各方之间安全地传输信息。JWT 是一种非常适合前后端分离架构的鉴权方案,它具有无状态、跨域友好、易于扩展等优点。核心要点JWT 由 Header、Payload、Signature 三部分组成使用格式在请求头中传递 TokenToken 只是 Base64 编码,不要放敏感信息生产环境必须使用 HTTPS 和强密钥实现 Token 刷新机制提升用户体验。
2025-12-28 19:38:20
749
原创 关于AI 面试官项目:智选ai 基于 Vue3 + Django + Dify 的全栈开发实战
更好的逻辑复用: 通过 Composable 函数提取和复用逻辑TypeScript 支持: 更好的类型推断和类型检查更灵活的代码组织: 按功能组织代码,而不是按选项(data、methods 等)更小的打包体积: Tree-shaking 友好,只打包使用的功能核心概念ref(): 创建响应式数据(基本类型)reactive(): 创建响应式对象(引用类型)computed(): 创建计算属性watch(): 监听数据变化: 生命周期钩子。
2025-12-17 14:32:57
923
原创 Vue组件的通信
基本概念1. 概述:自定义事件常用于:子 => 父2. 注意区分好:原生事件、自定义事件原生事件vs自定义事件原生事件: 事件名是特定的(click、mouseenter等等) 事件对象$event:是包含事件相关信息的对象(pageX、pageY、target、keyCode)自定义事件: 事件名是任意名称 事件对象$event:是调用emit时所提供的数据,可以是任意类型--在父组件中,给子组件绑定自定义事件:-->--注意区分原生事件与自定义事件中的$event-->
2025-12-08 10:59:47
698
原创 Vue Router 路由管理
路由在前端开发中扮演着至关重要的角色,它的核心本质是。从传统的多页面应用到现代单页面应用,路由的演进体现了Web开发理念的重大转变。传统路由:每次URL变化都向服务器请求新页面,导致完整页面刷新前端路由:URL变化只在客户端处理,通过JavaScript动态更新页面内容。
2025-11-30 23:09:13
1013
原创 Vue3 指令介绍
v-model 是 Vue 中用于实现表单元素和数据之间双向绑定的指令。当表单元素的值发生变化时,数据会自动更新;当数据发生变化时,表单元素的值也会相应更新。
2025-11-23 19:23:17
988
原创 VUE的创建与配置
性能大幅提升打包体积减少 41%,应用加载更快初次渲染速度提升 55%,更新渲染快 133%内存占用减少 54%,运行更流畅技术架构升级使用 Proxy 重写响应式系统,解决 Vue2 中数组和对象监听限制全新的虚拟 DOM 实现,优化 diff 算法更好的 TypeScript 支持,类型推断更完善。
2025-11-16 22:43:12
917
原创 TypeScript 中的接口(Interface)与类型别名(Type Alias)
接口是 TypeScript 的核心特性之一,主要用于定义对象的形状 - 即对象应该具有哪些属性和方法。接口的核心思想是契约式编程,它规定了一个实体必须遵守的约定。特性接口 (Interface)类型别名 (Type Alias)基本用途定义对象形状为任何类型创建别名语法扩展机制使用extends关键字使用交叉类型声明合并✅ 支持,同名接口自动合并❌ 不允许重复声明类实现✅ 类可以通过implements实现接口❌ 类不能实现类型别名联合类型❌ 不能直接定义✅ 完美支持元组类型❌ 不能定义。
2025-11-09 23:38:45
765
1
原创 TypeScript简介
TypeScript 是微软开发的开源编程语言,它是 JavaScript 的超集,意味着:所有 JavaScript 代码都是合法的 TypeScript 代码添加了静态类型检查系统支持最新的 ECMAScript 特性最终会被编译成 JavaScript 代码。
2025-11-02 23:11:45
1145
原创 深入理解跨域问题与解决方案
源”由三部分组成:协议(Protocol)、域名(Domain/Host)、端口(Port)。只有当这三者完全一致时,浏览器才认为两个URL是“同源”的。当前页面URL目标URL是否同源原因是协议、域名、端口均相同否协议不同 (https vs http)否域名不同 (www vs api)否端口不同 (443 vs 8080)方案适用场景关键特点CORS前后端分离项目的主流选择官方标准,安全灵活,需后端配置JSONP兼容老旧浏览器,只读操作仅限GET,非标准,逐渐淘汰代理服务器。
2025-10-08 20:38:58
1104
原创 深入理解CSS BFC:块级格式化上下文
BFC是CSS布局体系中的重要概念,它为我们提供了:1. 布局隔离能力 - 创建独立的渲染区域2. 浮动控制能力 - 完美解决浮动带来的布局问题3. 间距管理能力 - 精确控制元素间的距离4. 自适应布局能力 - 实现灵活的多栏布局虽然现代CSS布局技术(Flexbox、Grid)解决了很多传统布局问题,但理解BFC仍然很重要,因为它:是理解CSS渲染机制的基础在维护老项目时非常有用能够解决某些特定布局问题帮助我们写出更健壮的CSS代码。
2025-10-08 20:04:52
776
原创 JavaScript事件流:冒泡与捕获的深度解析
事件冒泡和捕获是JavaScript事件模型的核心机制**,理解它们对于编写高效的Web应用至关重要:1. 冒泡是默认行为,适合大多数日常开发场景,特别是事件委托模式2. 捕获提供了更细粒度的控制,适用于需要预先处理事件的特殊情况3. 合理使用stopPropagation可以精确控制事件传播,但要避免过度使用4. 事件委托利用冒泡机制**大幅提升性能,特别是在动态内容中掌握事件流的传播机制,能够让你更好地控制用户交互,编写出更加健壮和高效的JavaScript代码。
2025-10-08 19:47:30
835
原创 异步IO与async/await的工作原理
异步IO的优势在于能够用有限的资源处理大量的并发连接,特别适合网络服务器、爬虫、实时通信等场景。:协程需要主动让出控制权,长时间运行的CPU密集型任务会阻塞事件循环。协程是一种特殊的生成器,但语义更清晰,专为异步编程设计。当某个IO操作完成时,将对应的协程重新放入就绪队列。:Future的子类,用于包装和管理协程的执行状态。所有任务完成,main协程恢复,输出结果和结束信息。时,挂起当前协程,将其等待的操作注册到等待队列。1秒后,第一个任务恢复,输出"Hello"2秒后,第二个任务恢复,输出"World"
2025-09-21 20:19:05
739
原创 JavaScript数据交互
--数据存储的容器本质:变量是程序在内存中申请的⼀块⽤来存放数据的空间内存层面:变量实际上是对内存位置的抽象引用基本类型直接存储值,引用类型存储内存地址JavaScript 引擎自动管理内存分配和回收。
2025-09-21 20:00:27
913
原创 Python 迭代器、生成器及相关表达式详解
特性列表推导式生成器表达式求值方式急切,立即执行,构建完整列表。惰性,按需生成元素。内存占用高,存储整个列表。极低,同一时间只处理一个元素。返回类型listgenerator速度创建时稍慢(要构建所有元素),但访问快(随机访问)。创建极快,逐个生成元素的速度与列表推导式迭代速度相当。迭代次数可多次迭代。只能迭代一次,耗尽后即为空。语法方括号[]圆括号()(在函数唯一参数时可省略)经验法则:默认先考虑使用生成器表达式,除非你确实需要一个完整的列表(例如,要进行切片操作或多次使用)。迭代器。
2025-09-19 14:47:11
974
原创 css⽹⻚美化
(1)CSS定义:层叠样式表(Cascading style sheets)(2)CSS的作⽤:给⻚⾯中的HTML标签设置样式。
2025-09-15 01:22:16
1063
原创 计算机⽹络及TCP⽹络应⽤程序开发
graph TDA[创建Socket对象] --> B[建立连接 connect]B --> C[发送数据 send]C --> D[关闭连接 close]网络基础:理解IP地址(定位设备)、端口(定位应用)、Socket(通信工具) 是网络编程的基石。协议选择:根据应用场景在可靠但慢的TCP和快速但不可靠的UDP之间做出权衡。TCP精髓:其可靠性源于复杂的机制(握手、挥手、确认、重传、控制),其开发流程围绕“建立连接->传输->关闭连接”展开。开发关键:严格遵循开发流程,深刻理解字节编码。
2025-09-07 17:54:46
1272
原创 python进程,线程与协程
协程(Coroutine)是⽤户态的轻量级线程,通过协作式多任务实现并发。相⽐线程,协程的切换⽆需操 作系统调度,仅需保存寄存器上下⽂,因此效率更⾼。核⼼优势:1. ⽆锁机制:避免多线程同步开销2. ⾼并发:单线程内处理数千级I/O密集型任务(如⽹络请求)3. 代码简洁:⽤同步语法写异步逻辑( async/await )
2025-09-07 17:12:51
977
原创 SQLite数据库
特性原生 SQL (sqlite3)学习曲线需要熟悉 SQL需要学习 ORM 概念灵活性非常高,可执行任意 SQL较高,但复杂查询可能仍需 SQL安全性需手动防止 SQL 注入自动防止 SQL 注入可维护性较低,SQL 与代码混合较高,面向对象,代码清晰开发效率较低较高,特别是 CRUD 操作适用场景简单脚本、性能关键操作中大型项目、团队开发。
2025-09-03 12:29:07
1207
原创 fastAPI详解
FastAPI 是⼀个⽤于构建 API 的现代、快速(⾼性能)的 web 框架,专为在 Python 中构建 RESTful API ⽽设计。FastAPI 使⽤ Python 3.8+ 并基于标准的 Python 类型提示。FastAPI 建⽴在 Starlette 和 Pydantic 之上,利⽤类型提示进⾏数据处理,并⾃动⽣成API⽂档。FastAPI 于 2018 年 12 ⽉ 5 ⽇发布第⼀版本,以其易⽤性、速度和稳健性在开发者中间迅速流⾏起来。
2025-08-31 17:00:00
1268
原创 python面向对象基础
有动词就⼀定有实现这个动作的实体!所谓的模拟现实世界,就是使计算机的编程语⾔在解决相关业务逻辑的时候,与真实的业务逻辑的发⽣ 保持⼀致,需要使任何⼀个动作的发⽣都存在⼀个⽀配给该动作的⼀个实体(主体)。因为在现实世界 中,任何⼀个功能的实现都可以看做是⼀个⼀个的实体在发挥其各⾃的“功能”(能⼒)并在内部进⾏协 调有序的调⽤过程!在Python中,我们可以有两种类的定义⽅式:Python2(经典类)和 Python3(新式类)经典类:不由任意内置类型派⽣出的类,称之为经典类class 类名:# 属性。
2025-08-28 22:28:12
993
原创 模块与package包
模块的本质:在Python中,模块的本质就是⼀个Python的独⽴⽂件(后缀名.py),⾥⾯可以包含 全局 变量、函数以及类。注:在Python中,每个Python⽂件都可以作为⼀个模块,模块的名字就是 ⽂件的名字。也就是说⾃定 义模块名必须要符合标识符命名规则。特别注意:我们在⾃定义模块时,模块名称不能为中⽂,另外我们⾃定义的模块名称不能和系统中⾃带 的模块名称相冲突,否则系统模块的功能将⽆法使⽤。⽐如不能定义⼀个叫做os.py模块。
2025-08-19 23:43:01
665
原创 Python闭包和装饰器
在不改变现有函数源代码以及函数调⽤⽅式的前提下,实现给函数增加额外的功能。装饰器的本质就是⼀个闭包函数(三步:① 有嵌套 ② 有引⽤ ③ 有返回)有返回代表外部函数返回内部函数的内存地址(内部函数的名称)2个前提:不改变函数的源代码不改变函数的调用方式对函数的原功能做了加强或者补充'''装饰器:本质就是⼀个闭包①有嵌套②有引⽤③有返回'''# 开发登录验证功能print('验证登录')# 执⾏原有函数fn()@checkprint('发表评论')comment()
2025-08-19 01:00:00
1422
原创 引⽤变量与可变、⾮可变类型
在⼤多数编程语⾔中,值的传递通常可以分为两种形式“ 值传递与引⽤(地址)传递” ,但是在Python中 变量的传递基本上都是引⽤(地址)传递。
2025-08-18 14:06:22
1162
原创 lambda表达式
在Python中,函数是⼀个被命名的、独⽴的完成特定功能的⼀段代码,并可能给调⽤它的程序⼀个返回 值。所以在Python中,函数⼤多数是有名函数 => 普通函数。但是有些情况下,我们为了简化程序代码,也 可以定义匿名函数 => lambda表达式。
2025-08-13 22:26:37
422
原创 高阶函数和递归
lambda函数是一种匿名函数,可以用于创建简单的函数对象,通常用于高阶函数的参数。# 使用lambda函数计算平方print(list(squared)) # 输出: [1, 4, 9, 16, 25]
2025-08-12 21:43:47
967
原创 python函数2
1、函数名是存放着函数在内存中的地址可以把函数名也当成是一个变量2、把函数当成序列中的元素进行操作。a、所有函数都不带参数的情况b、所有函数都带相同个数的参数的情况c、不同函数所带参数的个数不一致的情况3、把函数当成另一个函数的参数,进行操作至少有2个函数,设计到A函数作为B函数的参数,然后去调用B函数4、把函数当成另一个函数的返回值,进行操作当函数A返回另一个函数B时,调用A()会得到B函数本身,之后可以继续调用B()
2025-08-11 21:00:00
589
原创 Python中的函数
所谓的函数就是⼀个 被命名的、独⽴的、完成特定功能的代码段(⼀段连续的代码),并可能给调⽤它 的程序⼀个 返回值。被命名的:在Python中,函数⼤多数是有名函数(普通函数)。当然Python中也存在没有名字的函数叫 做匿名函数。独⽴的、完成特定功能的代码段:在实际项⽬开发中,定义函数前⼀定要先思考⼀下,这个函数是为了 完成某个操作或某个功能⽽定义的。(函数的功能⼀定要专⼀)返回值:很多函数在执⾏完毕后,会通过return关键字返回⼀个结果给调⽤它的位置。
2025-08-08 22:19:46
1165
原创 Python中的数据序列-2
所谓的公共⽅法就是⽀持⼤部分数据序列。注:这张图中并不是代表全部的,还需要再后续中补充和总结推导式comprehensions(⼜称解析式),是Python的⼀种独有特性。推导式是可以从⼀个数据序列构建 另⼀个新的数据序列(⼀个有规律的列表或控制⼀个有规律列表)的结构体。共有三种推导: 列表推导式 、集合推导式 、字典推导式# 列表推到式分为三个部分# 左边 中间 右边# 加工 数据产生 筛选# 字典推到式# 集合模式。
2025-08-05 14:31:17
673
原创 python运算符与if结构
运算符:-= 描述:减法赋值运算符 实例:c-=a等价于c = c - a,运算符 :// = 描述:整除赋值运算符,实例:c//=a等价于c=c//a。运算符:+= 描述:加法赋值运算符 实例:c+=a等价于c = a+c ,运算符:**= 描述: 幂赋值运算符,实例:c**=a 等价于c=c**a。运算符:*= 描述:乘法赋值运算符 实例:c*=a等价于c = c*a。运算符:/ = 描述:除法赋值运算符,实例:c/=a等价于c=c/a。运算符 :// 描述:整除,实例:9 // 4 输出结果为 2。
2025-08-03 22:00:00
760
原创 python的入门2
变量⼀定要先定义,后使⽤,否则会报错在Python中,如果要赋值的内容添加了单引号或者双引号,其就是Python中的⼀种数据类型:叫做字 符串# 使用变量(其实就是使用名字进行调用即可print(goods_changjia) # 调用了变量goods_changjia# 调用变量# 调用变量之前,前提是该变量存在。
2025-08-03 17:55:14
364
原创 python中数据的序列-1
通过引号来创建字符串,单引号‘(内容)’双引号“(内容)”所谓切片指对操作的对象 截取 其中⼀部分的操作。字符串、列表、元组都支持切片操作定义列表的语法列表名 =[元素1,元素2,元素3....]# 举例# fruit1 = "香蕉"# fruit2 = "苹果"# fruit3 = "西瓜"# fruit_list = ["香蕉",111,True]
2025-07-31 21:34:41
886
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅