- 博客(64)
- 收藏
- 关注
原创 FastAPI框架
FastAPI是一个基于Python的现代Web框架,专为快速构建API设计,具有高效、智能和简洁的特点。它支持异步处理,使用Starlette作为底层框架,Pydantic进行类型验证。文章介绍了FastAPI的安装、基本路由配置、多级路由分发、参数传递、Form表单处理以及文件上传功能,展示了如何通过uvicorn启动服务器并构建RESTful API。框架支持Python 3.6+,显著提升开发效率,自动生成交互式文档,适合前后端分离项目。
2025-09-11 14:30:00
1877
原创 VMWare Workstation 17 安装 Ubuntu24.02
恭喜!您已成功在VMware Workstation Pro 17上安装了Ubuntu 24.04 LTS系统。这个强大的开发环境现在可以用于各种编程、测试和学习用途。使用建议快照功能:在进行重大更改前使用VMware的快照功能保存系统状态资源调整:根据实际使用情况,可以在虚拟机设置中调整CPU和内存分配扩展存储:如果磁盘空间不足,可以在VMware设置中扩展虚拟磁盘网络配置:如需更复杂的网络环境,可以尝试桥接或主机模式常见问题解决如果遇到显示问题,尝试重新安装VMware Tools。
2025-04-08 15:47:43
2116
原创 FastAPI实现JWT鉴权的几种方法
JWT令牌实现指南 本文介绍了JSON Web Tokens(JWT)的实现过程,包括: 依赖安装:关键库包括jwt、python-jose和passlib 密码处理:使用Bcrypt算法进行密码哈希和验证 令牌生成:通过随机密钥、签名算法和过期时间设置创建JWT令牌 令牌验证:实现用户校验和令牌解密功能,处理各种异常情况 提供了完整的代码示例,包括用户模型定义、密码哈希函数、令牌生成/验证函数及登录API实现。支持通过Header或HTTPBearer两种方式获取令牌,并包含详细的错误处理机制。
2025-09-12 08:30:00
450
原创 Redis的连接和主从配置
本文介绍了Python连接Redis数据库、Django通过Redis存储Session以及Redis主从配置的方法。主要内容包括:1) Python使用StrictRedis类连接Redis并进行基本操作;2) Django配置redis-sessions实现Session存储;3) Redis主从配置步骤,包括主机和从机的配置文件修改及服务重启。重点说明了主从架构可以实现读写分离,适合高并发的Web应用场景。文章提供了详细的配置示例和操作命令,便于实际应用参考。
2025-09-11 08:30:00
273
原创 Redis基础
Redis是一款高性能键值数据库,支持数据持久化、多种数据结构及主从备份。其特点包括极速读写(11万次读/8.1万次写)、丰富数据类型(Strings/Hashes/Lists/Sets/Sorted Sets)、原子操作及发布订阅等特性。应用场景涵盖缓存、社交类应用、Session存储等。核心配置包括IP绑定、端口设置、密码保护等。数据操作支持字符串、哈希、列表、集合等结构的增删改查,通过keys/expire等命令管理键生命周期。有序集合通过score权重实现排序,提供zadd/zrange等专属操作命
2025-09-10 14:30:00
1082
原创 DRF开发基本API接口
本文介绍了Django REST Framework (DRF) 中序列化与反序列化的实现方法。主要内容包括: 基础配置:通过新建应用并创建序列化器类,继承ModelSerializer实现自动序列化与反序列化,配置视图和路由,注册应用后即可访问API接口。 自定义序列化器:详细说明了如何自定义序列化器,包括字段类型、选项参数和通用参数的设置方法,以及在视图中实现单个和多个数据的序列化操作。 反序列化应用:介绍了验证数据的方法,通过is_valid()进行验证,获取验证结果和错误信息,并展示了验证成功和失败
2025-09-10 08:30:00
892
原创 Django开发基本API接口
本文介绍了Django中设置API访问路径和数据操作的方法。主要内容包括:1)在子应用中配置路由路径,包括获取学生列表和单个学生信息的路径;2)创建Student模型,定义字段属性;3)实现经典CRUD操作:通过GET获取数据、POST添加数据、PUT修改数据、DELETE删除数据。每个操作都详细展示了视图函数的实现,包括参数解析、数据库操作和响应返回。文章使用JsonResponse处理数据交互,并遵循RESTful风格的状态码规范。
2025-09-09 14:30:00
225
原创 两种Web开发模式
Web应用开发主要有前后端不分离和分离两种模式。不分离模式下,服务端直接提供完整的界面和内容;而分离模式下,前端负责页面展示,后端专注数据提供,二者通过API接口连接。API作为数据交互的桥梁,遵循restful规范,可以是类、方法或网址形式。这种架构实现了前后端的解耦和独立部署。
2025-09-09 08:30:00
179
原创 DRF开发引入
本文介绍了API接口开发的基本概念和规范要点。主要内容包括:1)API接口作为应用程序对外提供的数据操作入口,可分为函数、URL等形式;2)主流API规范有Restful和RPC两种;3)Restful接口设计需遵循特定规范;4)幂等性概念,即多次相同请求对服务端资源的影响是否一致;5)序列化的核心作用及两种形式:将数据转换为指定格式(序列化)和将外部数据还原为所需格式(反序列化)。文章为API开发提供了基础概念框架和关键注意事项。
2025-09-08 09:44:46
358
原创 Flask 框架引入
本文介绍了Flask框架的基本使用,包括安装、项目创建、路由配置、请求响应处理等核心内容。主要内容有:1) Flask的安装和基本项目结构;2) 路由配置方法及动态路由传参;3) 三种修改配置的方式;4) 请求和响应处理,包括获取表单数据、JSON数据和文件上传;5) 异常处理机制。文章通过代码示例详细演示了Flask的常用功能,如路由装饰器使用、配置文件管理、请求对象操作等,适合Flask初学者快速入门。
2025-09-08 09:42:09
961
原创 微信小程序的基础开发
微信小程序开发关键点总结: 配置:分为全局(app.json)和局部配置(pages/*.json),支持页面路径、导航栏样式、tabBar等设置。 性能优化:通过异步加载、CDN加速、文件压缩提升首页加载速度。 页面结构:每个页面包含wxml、wxss、js、json四个文件,采用750rpx适配不同机型,建议滚动区域使用vh单位。 组件使用: 轮播图使用swiper/swiper-item组件 滑动控件通过scroll-view实现横向/纵向滚动 事件处理支持bind/catch绑定,可通过datase
2025-09-05 14:00:00
836
原创 Vue2实现侧边导航
本文介绍了ElementUI与Vue的集成使用方案。主要内容包括:1)通过官方文档引入ElementUI组件;2)在Vue中通过@import导入外部CSS样式表;3)利用@select事件获取菜单项的index和indexPath属性,实现路由跳转和内容切换;4)详细说明了在侧边栏导航中实现路由功能的完整方案,包括启用路由模式、菜单路径绑定、路由配置、自动高亮及嵌套路由视图等关键点。文章提供了完整的代码示例和实现注意事项,帮助开发者快速构建基于ElementUI的Vue路由应用。
2025-09-05 08:00:00
838
原创 Vue2组件,插槽,路由和数据共享
Vue组件开发与通信指南 本文介绍了Vue组件开发的两种注册方式(局部/全局)及其使用步骤,重点讲解了组件间的数据通信方法: 组件注册: 局部注册:创建组件→引入→注册→使用 全局注册:创建组件→main.js引入并注册→直接使用 通过scoped实现样式隔离 组件通信: 父→子:通过props属性传递 子→父:使用$emit触发自定义事件 子组件间:通过EventBus事件总线实现 每种通信方式都给出了详细代码示例,包括参数传递和接收处理的具体实现方法。文中特别强调了样式隔离的重要性,并提供了样式冲突的解
2025-09-04 14:00:00
566
原创 Vue2配置和项目结构
本文介绍了Vue2项目的配置与基本结构。环境配置包括使用nvm安装Node.js和Vue CLI脚手架,提供命令行和UI两种创建项目方式。项目结构以myapp为例,详细说明了public、src等核心目录及其文件作用,重点介绍了vue.config.js、App.vue、main.js、router/index.js等关键配置文件的用途和示例代码。最后解释了components和views目录的区别,前者存放可复用组件,后者存放页面级组件。整体提供了Vue2项目从搭建到基础架构的完整指南。
2025-09-04 08:00:00
965
原创 Web网络开发 -- Vue2基础语法,属性和生命周期
Vue.js基础入门指南 本文介绍了Vue.js框架的基本概念和使用方法。Vue是一个渐进式JavaScript框架,采用MVVM设计模式,包含Model层、ViewModel层和View层。文章详细讲解了Vue2的安装配置、实例创建、元素绑定等基础操作,并介绍了核心语法特性: 插值语法:使用{{}}在HTML中显示变量 标签渲染:v-html/v-text指令的使用 元素隐藏:v-if和v-show的区别 数据绑定:v-bind单向绑定和v-model双向绑定 事件处理:v-on指令和常见事件类型 事件对
2025-09-01 14:30:00
716
原创 Docker基础
本文介绍了Docker在Ubuntu系统上的安装、配置及常用操作。主要内容包括:1)通过apt官方源安装最新版Docker的完整步骤;2)配置国内镜像源加速;3)详细整理了镜像管理(搜索/下载/删除/打包/上传)、容器操作(启动/停止/日志/进入容器)等核心命令;4)数据卷创建与挂载方法。文章提供了从安装到日常使用的全流程指导,包含大量实用命令参数说明,适合作为Docker入门参考手册。
2025-09-01 09:46:37
501
原创 轻量高效Web服务器 -- Nginx
摘要: Nginx是一款高性能HTTP/反向代理服务器,支持IMAP/POP3/SMTP服务。其配置文件位于/etc/nginx/nginx.conf,网页可配置在/etc/nginx/conf.d/(即时生效)或通过软链接启用sites-available中的配置。支持IP/域名绑定、路径后缀及代理转发(如FRP)。负载均衡通过upstream定义多台后端服务器实现。HTTPS需配置SSL证书(.pem和.key文件),强制HTTP跳转HTTPS以增强安全性。核心功能包括静态资源托管、反向代理、负载均衡及
2025-08-31 14:30:00
336
原创 版本管理 -- Git
本文介绍了Git的基本配置和使用方法。主要内容包括:1) Git初始配置用户名和邮箱;2) 常见Git状态说明;3) 仓库初始化、核心操作流程(工作区→暂存区→版本库);4) 版本回退和日志查看;5) 分支操作(创建、切换、合并、删除);6) 远程仓库操作(添加、拉取、提交、克隆)。文章还提供了.gitignore文件的参考配置和解决Git冲突的方法,适合Git初学者快速掌握基本工作流程和常用命令。
2025-08-31 08:30:00
409
原创 Web网络开发 -- jQuery框架
jQuery框架简介与基础应用 jQuery是一个高效、简洁的JavaScript框架,遵循"Write Less, Do More"理念,封装了DOM操作、事件处理、动画及Ajax等功能。通过$符号简化代码,支持链式调用。基础用法包括: 引入方式:通过<script>标签加载jQuery库。 文档就绪:使用$(function(){...})确保代码在DOM加载后执行。 选择器:支持ID、类、标签、层级等丰富选择器(如$("#id")、$(".
2025-08-30 14:30:00
607
原创 Web网络开发 -- JavaScript
JavaScript基础摘要 JavaScript是一种轻量级的脚本语言,主要用于网页交互开发。它通常通过三种方式引入HTML:标签内嵌入、<script>标签插入和外部文件引入。JavaScript提供多种输出方式包括弹窗、控制台日志和修改HTML内容。 核心特性 弱类型语言,支持number、string、boolean等数据类型 提供类型转换方法如String()、parseInt()等 包含if/else、switch等流程控制语句 支持for、while等多种循环结构 函数定义 支持f
2025-08-30 08:30:00
792
原创 Web网络开发 -- 认识BootStarp框架
Bootstrap框架摘要 Bootstrap是一个响应式前端框架,提供栅格系统和预定义CSS样式。"min"后缀文件用于生产环境(体积小),未带后缀的用于开发。基础使用需引入bootstrap.min.css。布局容器分.container(固定宽度)和.container-fluid(全屏宽度)。栅格系统基于12列布局,支持不同屏幕尺寸的响应式设计(.col-xs-/.col-sm-等),可嵌套、偏移和排序列。规则包括行(.row)必须包含在容器内,列间距通过padding实现。详细
2025-08-29 14:30:00
1728
原创 Web网络开发 -- CSS 盒子模型
CSS盒子模型与定位总结 CSS盒子模型由内容(content)、内边距(padding)、边框(border)和外边距(margin)组成。定位方式包括static(默认)、relative(相对定位)、absolute(绝对定位)和fixed(固定定位)。浮动(float)使元素脱离文档流,clear属性控制浮动元素对周围元素的影响。溢出(overflow)处理内容超出元素框的情况,z-index控制元素层叠顺序,opacity设置透明度。这些属性共同构建网页的布局和视觉效果。
2025-08-29 08:30:00
1459
原创 Web网络开发 -- 常见CSS属性
本文总结了常用的CSS样式属性,主要包括: 尺寸控制:width/height及单位(px/%/vh/vw) 字体样式:font-family/size/style/weight 颜色设置:十六进制/RGB/rgba 文本处理:text-align/decoration/indent/line-height 背景设置:color/image/repeat/position/gradient 边框效果:style/width/color/radius 动画特效:transition/transform/key
2025-08-28 21:21:30
919
原创 Web网络开发 -- CSS 选择器
本文系统介绍了CSS选择器的种类及用法,包括基本选择器(id、class、元素、通用选择器)、组合选择器(后代、儿子、毗邻、弟弟、属性选择器)、分组与嵌套技巧,以及伪类和伪元素选择器。重点讲解了各类选择器的语法格式和实际应用场景,并提供了选择器优先级的权重对比图表,帮助开发者理解不同选择器的样式覆盖规则。文章内容全面且实用,适合作为CSS选择器的参考手册。
2025-08-27 08:00:00
409
原创 Web网络开发 -- HTML和CSS基础
HTML(超文本标记语言)是构建网页的基础,由Tim Berners-Lee于1990年创立。它通过标签定义网页结构,包括文档声明、头部(head)和主体(body)。头部包含元信息如标题和编码方式,主体则展示实际内容。HTML支持文本格式化、图像、链接、列表、表格和表单等功能,表单用于收集用户输入并与服务器交互。常用标签包括标题(h1-h6)、段落(p)、强调(strong/em)等。HTML结合CSS和JavaScript实现现代网页的动静结合,标签分为单标签和双标签,属性可自定义样式和行为。注释和特殊
2025-08-26 16:00:00
1028
原创 Python学习 -- 一种登录验证机制
本文介绍了Web开发中Session与Cookie的实现原理及区别。Cookie通过服务器设置、客户端存储的方式实现登录验证,但存在易删除、大小限制和安全性问题;Session则通过服务器存储会话信息,仅向客户端发送Session ID,安全性更高。文章还对比了四种常见认证机制,并详细讲解了Django中间件的创建步骤和五种核心方法(process_request/view/response/exception/template_response)的作用及执行流程。最后提供了Django核心知识点的参考资料
2025-08-26 08:00:00
1176
原创 Python学习 -- Django的ORM查询语法
Django ORM查询操作总结 本文介绍了Django ORM中的单表查询、单表下划线查询以及外键关联查询等操作。主要内容包括: 单表基本查询: 常用方法:all(), get(), filter(), exclude() 结果显示:values()(字典形式), values_list()(元组形式) 排序与统计:order_by(), reverse(), count() 其他操作:first(), last(), exists() 单表下划线查询: 比较查询:__gt, __gte, __lt, _
2025-08-25 14:00:00
290
原创 Python学习 -- Django设计模式及视图
本文介绍了两种常见的Web开发设计模式:MVC和Django特有的MVT模式。MVC将应用分为模型、视图和控制器三个组件,强调业务逻辑分离;MVT则分为模型、视图和模板,更适合Django框架。文章还对比了函数视图与类视图的实现方式,详细说明了类视图的装饰器使用方法。此外,介绍了Python反射机制的操作方法,以及四种前端向后端传参的方式。最后概括了Django请求响应生命周期的完整流程,从用户请求到服务器返回响应的各个环节。
2025-08-25 08:00:00
590
原创 Python学习 -- Django的ORM操作和图片存储
本文介绍了Django中的ORM框架及其使用方法。ORM(对象关系映射)通过将数据库表映射为Python类,简化了数据库操作,提高了开发效率,但执行效率略低于直接使用SQL。文章详细讲解了在Django中创建应用、配置数据库、定义模型类、执行数据库迁移等步骤,并提供了增删改查的API示例,包括使用filter()进行条件筛选、get()获取单条记录、save()保存持久化对象等方法。同时介绍了多表查询的实现方式,强调外键约束的设置要点。这些内容为开发者提供了使用Django ORM进行数据库操作的系统指导。
2025-08-24 14:00:00
797
原创 Python学习 -- Django开发入门
本文介绍了Web框架和Django开发的基础知识。主要内容包括:1)Web服务器与HTTP协议的基本工作原理;2)Django框架的概述、安装和项目创建;3)Django项目的启动配置和访问设置;4)表单提交的实现方式;5)转发(render)与重定向(redirect)的区别和应用场景。重点讲解了Django开发中的基本配置、路由设置、模板渲染等技术要点,以及两种页面跳转方式在数据传递和请求处理上的差异。文章为Python Web开发初学者提供了Django框架的入门指导。
2025-08-24 08:00:00
574
原创 Python学习 -- Linux 命令格式与常用命令
本文介绍了Linux系统常用命令和快捷键,包括基本命令格式、快捷键操作、文件/目录管理、系统信息查看等内容。常用快捷键如Tab补全、Ctrl+C终止进程等;基础命令包括clear、pwd、date、alias等;文件操作命令如ls查看目录、mkdir创建目录、rm删除文件等,并详细说明了选项参数。此外还介绍了文件权限表示法、重定向/管道操作、变量使用等进阶功能,以及git和svn版本控制工具的适用场景。文章为Linux初学者提供了全面的命令行操作指南。
2025-08-23 14:00:00
267
原创 Python学习 -- 使用Pymysql进行数据库连接
本文介绍了使用PyMySQL操作MySQL数据库的基本流程,包括连接数据库、创建游标、执行SQL语句(DML和DQL操作)以及关闭连接等步骤。重点讲解了三种SQL参数传递方式(字符串拼接、字符串传参和函数传参),并推荐使用函数传参方式以避免SQL注入。文章还详细说明了DML操作(增删改)需要手动提交事务,以及DQL操作(查询)的多种结果获取方法(fetchall/fetchone/fetchmany)。最后强调了操作完成后必须关闭游标和数据库连接。
2025-08-22 14:00:00
170
原创 Python学习 -- MySQL数据库的查询及案例
本文介绍了SQL数据库查询的基本语法和操作,包括简单查询、限定查询、排序查询、多表查询、连接查询、分组查询和子查询等。文章通过具体示例演示了各种查询方式的应用场景和注意事项,如使用通配符进行模糊匹配、处理多表查询的笛卡尔积问题、使用连接查询避免数据丢失、以及分组查询中的统计函数使用等。重点讲解了不同查询类型的语法结构和使用技巧,帮助读者掌握SQL查询的核心方法,提高数据库操作效率。
2025-08-21 21:38:55
618
原创 Python学习-- 数据库和MySQL入门
MySQL数据库与SQL语言摘要 MySQL是一种流行的关系型数据库管理系统,使用SQL语言进行数据操作。数据库分为关系型(如MySQL)和非关系型(如Redis、MongoDB)。SQL语言主要分为五类:DQL(数据查询)、DML(数据操作)、TCL(事务控制)、DCL(数据控制)和DDL(数据定义)。 MySQL基础操作包括数据库/表的创建删除、数据的增删改查等。建表时可添加约束条件:非空约束(NOT NULL)、唯一约束(UNIQUE)和主键约束(PRIMARY KEY),其中主键通常设为自增ID。M
2025-08-21 21:23:26
903
原创 python学习 --正则表达式
正则表达式(RE)是一种强大的文本处理工具,用于匹配、查找和替换符合特定规则的字符串。文章介绍了正则表达式的基础语法,包括字符组([])、元字符(如\d、\s等)、量词(*、+、?等)和转义符的使用方法。同时讲解了Python中re模块的常用函数:match()从字符串开头匹配,search()查找第一个匹配,findall()返回所有匹配结果,sub()实现字符串替换,以及split()进行字符串分割。文中还特别说明了贪婪匹配与非贪婪匹配的区别,以及使用r前缀避免转义字符的复杂处理。这些功能组合使用可以高
2025-08-19 07:00:00
749
原创 python学习 -- Python的协程操作
摘要: 协程是单线程下的并发实现,通过用户态的任务切换和CPU上下文保存实现高效并发。相比线程,协程切换开销更小,但无法利用多核且阻塞会阻塞整个线程。Python中可通过Greenlet(手动切换)、Gevent(自动切换IO)、yield模拟或async/await实现协程。Gevent通过补丁识别原生IO操作,async/await是官方推荐方式。协程适合高并发IO密集型任务,而多进程/线程适合CPU密集型任务。协程本质是单线程内任务切换的并发,资源占用少但需注意阻塞问题。
2025-08-18 17:25:54
1191
原创 python学习--python的线程操作
所谓死锁:是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。主进程在代码结束后就算执行完毕了,此时守护进程被回收,之后主进程会等待子进程全部执行完毕后回收子进程的资源后才会结束,否则会产生僵尸进程,其守护的是主进程。3) 守护进程随着主进程代码的结束而结束(代码跑完就结束),守护线程随着主进程的结束而结束(整个进程执行完结束)进程是资源分配的最小单位,线程是CPU调度的最小单位,每一个进程中至少有一个线程。
2025-04-27 07:00:00
822
原创 python学习--python的进程操作(2)
生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。定义一个池子,在里面放上固定数量的进程,有需求来了,就拿一个池中的进程来处理任务,等到处理完毕,进程并不关闭,而是将进程再放回进程池中继续等待任务。如果有很多任务需要执行,池中的进程数量不够,任务就要等待之前的进程执行任务完毕归来,拿到空闲进程才能继续执行。第一步 导入事件模块。
2025-04-26 07:00:00
1525
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅