- 博客(30)
- 收藏
- 关注
原创 Django在项目中的作用
从快速启动原型到支撑大型系统,从保障代码规范到抵御安全风险,Django用“全能”的特性,成为了项目创作中不可或缺的工具。它不是束缚开发者的“框架”,而是赋能创意的“引擎”——让开发者无需在基础工作上重复造轮子,只需将精力聚焦于核心业务和创新点,让每一个创意都能更高效、更稳定地落地。如果你正在筹备一个Web项目,无论是个人小创意还是企业级需求,Django都值得一试——它会用“电池已内置”的便捷、“规范严谨”的可靠、“安全兜底”的安心,陪伴你的项目从雏形走向成熟。
2025-12-01 08:36:52
700
原创 深入浅出前端路由:从概念到实战
路由是现代前端开发不可或缺的一部分,它不仅是单页应用的基础,也是提升用户体验的关键技术。路由的核心概念和两种实现方式(Hash 模式和 History 模式)主流框架(Vue 和 React)中的路由实践路由的高级特性,如嵌套路由、动态路由、路由守卫和路由懒加载常见问题及解决方案在实际项目开发中,应根据项目需求选择合适的路由模式和实现方案。对于简单项目,可以使用 Hash 模式;对于需要更好 SEO 和 URL 美观度的项目,可以选择 History 模式,但需要注意服务器配置。
2025-11-24 17:23:56
887
原创 TypeScript 全面指南:从基础到实战
TypeScript(简称 TS)是由微软开发的一种开源编程语言,它是 JavaScript 的超集,添加了静态类型系统。TypeScript 可以编译成纯 JavaScript,运行在任何支持 JavaScript 的环境中。布尔值(boolean)数字(number)字符串(string)数组(array)元组(tuple)枚举(enum)任意值(any)空值(void)Null 和 UndefinedNeverObject代码示例// 基本类型。
2025-11-24 17:23:36
604
原创 Vue3 + TypeScript 实战指南
)是目前开发的主流方式,通过指定lang="ts"即可在组件中使用TS语法,核心是为组件内的变量、函数提供类型约束。// 1. 基本类型定义// 2. 数组类型定义(两种方式)// 3. 对象类型定义(使用interface)id: number;age?: number;// 可选属性id: 1,name: "张三"// 4. 函数类型定义
2025-11-24 17:23:13
978
原创 MySQL多表关联查询:从入门到实战,搞定员工数据统计
其实多表关联查询的本质,就是“找到表之间的关联关系,按需提取数据”。拆表:明确业务中的独立实体(员工、部门、项目等),用分表存储减少冗余;找连接点:确定表之间的关联字段(通常是外键对应主键);写查询:用显式内连接(INNER JOIN)关联表,用ON定义连接条件,用WHERE筛选数据。
2025-11-17 11:12:27
471
原创 关于vue3
Vue3 作为目前最流行的前端框架之一,带来了许多激动人心的新特性和改进。无论是性能优化、开发体验还是代码组织方式,Vue3 都有了质的飞跃。本博客将带你从零开始,首先学习如何搭建 Vue 3 项目,然后逐步深入其核心特性,并通过一个实战项目,让你掌握 Vue3 的开发技巧。
2025-11-10 22:15:00
756
原创 TypeScript
id: number;age?: number;//?表示可选属性// readonly 表示只读属性// 正确使用id: 1,name: "张三",// 报错:只读属性不能修改如果你想写更可靠、可维护的代码,或者在中大型团队协作,TypeScript 几乎是必选项。它的学习曲线确实比 JavaScript 陡一些,但带来的收益远超成本:减少 80% 的类型相关 bug、提升团队协作效率、让重构更有底气。
2025-11-03 21:00:00
720
原创 跨域问题产生的原因及解决方法
跨域是指浏览器从一个源(Origin)的文档或脚本,去请求另一个源的资源时,就会触发跨域。协议(Protocol)域名(Host)端口(Port)只要这三者中有一个不同,就属于跨域。跨域是浏览器同源策略的安全限制解决跨域的主要方法有:CORS(生产环境推荐)代理服务器(开发环境常用)JSONP(兼容旧浏览器)(同主域子域通信)(跨域页面通信)
2025-09-28 23:30:00
1010
原创 什么是 CSS 的 BFC(块级格式化上下文)?如何触发 BFC?
BFC(Block Formatting Context,块级格式化上下文)是 CSS 渲染中的一个概念,它是一块独立的渲染区域,规定了在该区域中,块级盒子(block box)的布局方式,并且这个区域的内部布局不会影响到外部元素。可以把 BFC 理解为一个 **“隔离的独立容器”**:容器里面的元素无论如何布局,都不会影响到容器外面的元素。BFC是 CSS 中的块级格式化上下文,是一个独立的渲染区域。BFC 内部的布局不会影响到外部元素。float等。
2025-09-27 14:15:00
956
原创 JavaScript 事件冒泡与事件捕获
当浏览器中的某个元素触发了一个事件(比如click),这个事件并不是只在触发元素上执行一次,而是会按照特定的顺序在不同的 DOM 节点之间传播,这个传播过程就是事件流。事件捕获阶段目标阶段事件冒泡阶段注意:在旧版本 IE(IE8 及以下)中,只支持事件冒泡,不支持事件捕获。事件捕获:从外向内传播,事件冒泡:从内向外传播,(默认)阻止冒泡阻止冒泡 + 阻止后续同类型事件7.事件捕获与冒泡的完整流程图完整事件流顺序图图解说明捕获阶段(Capture Phase)事件从最顶层的window。
2025-09-26 23:30:00
739
原创 JavaScript基本知识
JavaScript是一种高级的、解释执行的编程语言,最初由Netscape公司的Brendan Eich在1995年仅用10天时间创建。它广泛应用于网页开发中,能够与HTML和CSS协同工作,为网页赋予动态交互功能。从最初的简单脚本语言,到ES6(ES2015)的重大革新,再到如今每年更新的ECMAScript标准,JavaScript已经成为全球数百万开发者的首选语言。// 函数声明// 函数表达式// 箭头函数(ES6)// 使用示例// 15// 5// 6。
2025-09-20 16:30:00
310
原创 TCP三次握手与四次挥手
这是面试中最常见的问题之一。1. 防止历史重复连接初始化造成的混乱这是三次握手的主要原因。考虑一个场景:客户端先发送了SYN(seq=90)报文,然后客户端宕机了,而且这个SYN报文还被网络阻塞了,服务端并没有收到。接着客户端重启后,又重新向服务端建立连接,发送了SYN(seq=100)报文。在网络拥堵情况下,一个「旧SYN报文」可能比「最新的SYN」报文早到达服务端。此时服务端就会回一个SYN+ACK报文给客户端,此报文中的确认号是91(90+1)。
2025-09-18 23:45:00
653
原创 Python中ORM的理解
这是 ORM 工作的基础,Python ORM 通常通过 “类属性注解”“类继承” 或 “代码约定”(如类名小写即为表名)定义映射关系,核心配置包括:类与表映射:Python 的User类对应数据库的user表(默认遵循 “蛇形命名法”,可手动指定表名);属性与字段映射:User类的id属性对应user表的id字段,支持自动类型转换(如 Python 的datetime.datetime对应 MySQL 的datetime);主键映射:指定主键字段及生成策略(自增、UUID、默认值等);。
2025-09-09 23:15:00
936
原创 SQLite的基本操作
(Type Affinity),列的 “类型” 更像是 “推荐存储类型”,实际存储值的类型由值本身决定,但创建表时定义类型仍有意义(明确数据语义、辅助验证)。中关联其他表(需用子查询或。:SQLite 支持在。
2025-09-07 22:45:00
388
原创 FastAPI基础
app.post或数据,参数通常通过 URL 传 递(路径参数或查询参数)。数据或某个操作,通常用于创建新资源、更新数据、登录等操作。
2025-09-07 17:14:02
522
原创 SQLAlchemy ORM
我们使用来定义模型。Base是所有 ORM 模型的基类,所有你定义的映射类(模型)都必须继承它。作用:它维护了模型类和数据库表之间的映射关系,以及元数据(metadata)。metadata是 SQLAlchemy 用来保存数据库结构信息的对象,比如表名、字段、约束等。__tablename__ = 'provinces' # 表名id = Column(Integer, primary_key=True, index=True) # 主键 + 索引。
2025-09-03 14:04:41
1013
原创 Python文件操作与异常处理
本文介绍了编程中文件操作的核心概念和基本方法。文件是存储在长期介质上的数据集合,分为文本文件和二进制文件。文件操作包括打开、读取、写入和关闭,推荐使用with语句自动管理资源。Python提供了os和shutil模块进行文件和文件夹管理。文章强调异常处理的重要性,建议精确捕获异常,使用try-except块包裹可能出错的代码,并配合else和finally使代码更健壮。最佳实践包括资源清理、预先检查和提供明确的错误信息。
2025-08-31 14:45:00
601
原创 Python文件操作与异常处理
r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。rb:以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。r+:打开一个文件用于读写。文件指针将会放在文件的开头。rb+:以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。w:打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件wb:以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该
2025-08-20 22:00:00
1833
原创 函数的装饰器
本文介绍了Python装饰器的核心概念与应用。装饰器是一种高阶函数,通过包装原函数实现无侵入式功能扩展,常见于日志记录、性能统计等场景。文章详细讲解了装饰器的基础语法(@符号)、参数传递(三层嵌套)和通用实现(*args/**kwargs),并探讨了保留元信息、多装饰器嵌套、类装饰器等高级用法。装饰器通过"不修改原函数、动态扩展功能"的设计原则,有效提升了代码复用性和可维护性。
2025-08-18 20:30:00
623
原创 函数的闭包
本文系统讲解了Python变量的作用域及其访问规则,重点解析了闭包机制。内容涵盖:1)四种作用域分类(局部/嵌套/全局/内置);2)闭包的三要素(函数嵌套、引用外部变量、返回内部函数);3)nonlocal关键字的作用与用法;4)可变/不可变类型在闭包中的处理差异。特别强调:闭包能保留局部变量,但需注意内存占用;修改外部变量时,不可变类型需nonlocal声明,而可变类型可直接修改。文章通过对比global和nonlocal的区别,以及详尽的代码示例,深入剖析了Python作用域和闭包的核心机制。
2025-08-14 17:08:37
1888
原创 函数的递归,lambd表达式以及全局变量的问题
本文介绍了Python编程中的三个核心概念:递归、lambda表达式和全局变量。递归是函数自我调用的编程技术,包含基线条件和递归条件,适用于阶乘等问题的简洁表达,但可能带来内存和性能问题。lambda表达式是一种匿名函数,适用于简单运算和高阶函数参数,但无法处理复杂逻辑。全局变量在函数外定义,可通过global关键字在函数内修改,需注意与局部变量的作用域冲突。这些概念各有优缺点,需根据实际需求合理使用。
2025-08-13 16:56:23
769
1
原创 函数的应用
本文探讨了函数作为元素的编程方法。首先介绍了将函数名作为变量使用的技巧,包括函数地址表示、计算器功能实现示例及字典存储函数的方法。其次讲解了函数作为参数的优点:减少重复代码、灵活修改功能、支持功能组合。最后分析了函数作为返回值的作用,能够实现动态生成和定制函数,提升代码灵活性。这些高阶函数技巧特别适用于框架开发和工具设计,通过函数组合和动态生成使代码更简洁高效。
2025-08-11 18:51:47
544
原创 函数的参数进阶
缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用)。
2025-08-06 15:02:45
316
原创 几种推导式和函数的作用及使用步骤
本文介绍了Python中的推导式语法和函数使用。推导式包括列表推导式(如生成偶数序列)、字典推导式(如统计单词长度)和集合推导式(如提取大写字母),这些语法简洁高效。函数的作用在于代码重用和模块化编程,使用步骤包括定义和调用。文章还说明了return语句的特性,若需返回多个结果可使用元组形式。通过示例展示了如何利用这些特性实现具体功能,如打招呼程序和参数处理。
2025-08-05 15:58:07
485
1
原创 Python中的数据列表
有序集合:列表中的元素按插入顺序排列,每个元素有固定的索引位置(从0开始)。可变性:创建后可以修改内容(增删改元素)。异构性:支持存储不同类型的数据(如整数、字符串、其他列表等)。
2025-07-31 15:43:11
804
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅