- 博客(57)
- 收藏
- 关注
原创 从后端到react框架
浏览器打开 http://localhost:5173,看到旋转的 React Logo,说明“容器”启动成功,相当于后端 Tomcat 跑起来了。在 React 里,把 HTML 和 JS 混写在一起叫 JSX,本质是一个语法糖,编译后等于 JavaScript 函数调用。给定一份数据(state),React 帮你算出新的 DOM,并只更新变化的部分——跟数据库索引差不离,只是操作的是页面。前端端口 5173,后端 8080,端口不同会触发 CORS。在后端眼里,React 不像“框架”,更像一个。
2025-09-26 23:55:02
405
原创 ollama部署本地大模型-将大模型运用于程序中
Ollama 是一个轻量级的大模型部署工具,它简化了本地运行开源大模型的流程。通过 Ollama,我们可以轻松地在自己的电脑或服务器上部署各种开源大模型(如 Llama 3、Qwen、Mistral 等),无需复杂的配置,即可通过 API 接口调用模型能力。部署简单,一行命令即可启动模型提供标准化 API,便于集成到各种编程语言支持多种主流开源大模型完全本地运行,保护数据隐私,无需网络连接其实可以和docker联系起来,减去繁琐的配置,一个命令直接继承。
2025-09-19 13:58:44
1013
原创 #基于Python的股票涨停数据分析工具开发实践
本项目是一个基于Python开发的股票涨停数据分析工具,主要功能是从问财网获取历史涨停数据,并与Excel文件中的股票信息进行匹配分析。通过自动化数据处理,帮助投资者快速识别和分析涨停股票的相关信息。
2025-09-13 11:47:37
603
原创 使用 chromedp 高效爬取 Bing 搜索结果
在数据采集领域,搜索引擎结果是重要的信息来源。但传统爬虫面对现代浏览器渲染的页面时,常因 JavaScript 动态加载、跳转链接加密等问题束手无策。本文将详细介绍如何使用 Go 语言的chromedp库,模拟真实浏览器行为爬取 Bing 搜索结果,并破解其跳转链接加密,最终获取真实目标地址。
2025-09-05 17:09:39
1218
原创 ElasticSearch数据库(ES数据库)是什么???
elasticsearch一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能。
2025-08-25 13:33:35
1066
原创 redis持久化机制
Redis提供了两种主要的持久化方式:RDB(Redis Database Backup)和AOF(Append Only File),它们各自有着不同的特点和适用场景。
2025-08-02 11:16:46
506
原创 Redis 缓存机制详解:原理、问题与最佳实践
在高并发系统中,是提升性能和减轻数据库压力的重要手段。本文将围绕缓存的使用方法、常见问题(雪崩、穿透、击穿、泄露)以及写入策略等内容,系统性地介绍 Redis 缓存的设计与实战。
2025-07-26 15:32:38
1079
原创 数据结构的文件操作
在计算机操作系统中,文件操作(包括创建、删除、读写)是通过文件系统来管理和实现的。文件系统负责组织和管理存储设备上的数据,并提供了一套接口供用户或应用程序进行文件操作。下面简要介绍这些操作的基本原理与实现方式。文件系统的层次结构:这是用户或应用程序直接交互的地方。它提供了命令行工具、图形界面以及编程接口(如C语言中的fopen()fclose()等函数)。:操作系统提供的API,允许用户程序请求内核执行特定的操作,例如打开文件、读取数据等。:为不同的具体文件系统提供了一个统一的接口。
2025-07-19 14:55:13
460
原创 使用 Go + Gin 实现 GitHub OAuth 登录
这套 GitHub OAuth 登录流程结构清晰、易于扩展。你可以基于此再接入 Gitee、Google、微信、钉钉等平台,只需调整授权 URL 和用户信息接口。
2025-07-12 20:34:34
376
原创 钉钉授权登录网站--golang全代码
跳转至钉钉授权页面:用户点击登录按钮后,引导至钉钉的 OAuth 授权页面。获取用户授权码code:用户授权后,钉钉回调我们的服务器,返回临时授权码。换取用户 Token 和 UnionID:通过code获取用户访问令牌,并从中提取唯一标识unionID。判断是否已有绑定账户:根据unionID查询数据库,判断用户是否已绑定过本地账户。未绑定处理流程:若为首次登录,返回unionID提示前端进行注册或绑定操作。已绑定处理流程:直接生成 JWT Token 并返回用户信息,完成登录。
2025-07-06 21:20:41
943
原创 TCMalloc——学习Go内存管理必经之路!!!!
Golang的内存管理是基于TCMalloc的核心思想来构建的。在了解Golang的内存管理之前,一定要了解TCMalloc(Thread Cache Malloc)的内存申请模式。随着Go的迭代,Go的内存管理与TCMalloc不一致地方在不断扩大,但其主要思想、原理和概念都是和TCMalloc一致的,如果跳过TCMalloc直接去看Go的内存管理,也许你会似懂非懂。本节将介绍TCMalloc的基础理念和结构。在Linux操作系统中,其实有不少的内存管理库,。
2025-06-22 16:43:23
748
原创 redis主从复制
今天简单了解一下redis中的主从复制将一台redis服务器上的数据复制到其他redis服务器上,分别是主节点和从节点,主节点和从节点是一对多,数据的复制是单向的,只能由主节点传向从节点,主节点执行写操作,从节点是读操作。主节点会将自己的数据变化通过异步的方式发送给从节点,从节点接收到主节点二点数据之后,更新自己的数据,这样就达到了数据一致的目的通过配置文件修改从节点。
2025-06-07 18:16:27
708
原创 Go的堆内存管理
从非常宏观的角度看,Go的堆内存管理就是下图这个样子学习内存管理,肯定首先需要了解内存管理的基本知识,我会按照,这样的顺序来逐步梳理相关知识。
2025-06-01 14:34:25
680
原创 Go 后端中双 token 的实现模板
下面是一个典型的实现模板,使用 Gin 框架 + JWT + Redis,结构清晰、可拓展,适合实战开发。
2025-05-18 16:57:33
619
原创 go语言对Cookie的支持
cookie就是客户端存储技术,以键值对的形式存在,是一个结构体。在B/S架构中,服务器端产生Cookie响应给客户端,浏览器接收后把cookie存在特定的文件夹中,以后每次请求浏览器都会把Cookie内容放入请求中在net/http包下提供了Cookie结构体main.goindex.html。
2025-05-11 11:23:20
577
原创 go实现用户后台管理系统(附全代码)
支持用户通过用户名和密码进行登录。对输入的用户名和密码进行验证,确保用户信息的正确性。登录成功后,更新用户的今日登录统计信息,并将用户信息存入会话(cookie)中,便于后续操作。提供友好的错误提示,如“用户不存在”“密码错误”“用户已被禁用”等,帮助用户了解登录失败的原因。允许用户输入用户名、邮箱、密码及确认密码进行注册。对用户名进行唯一性校验,避免重复注册。检查两次输入的密码是否一致,确保用户密码的准确性。使用 bcrypt 算法对用户密码进行加密存储,保障用户密码的安全性。
2025-05-04 12:53:39
1431
原创 goweb项目结构以及如何实现前后端交互
如果希望调用自定义函数,需要借助html/template包下的FuncMap进行映射FuncMap本质就是map的别名 type FuncMap map[string]interface{}函数被添加映射后,只能通过函数在FuncMap中的key调用函数main.goimport ("net/http""time"Age int//把自定义函数绑定在funcMap上index.html<head></head><body>获取到的数据:完整时间 {{.}}<br/>
2025-04-26 16:15:09
1008
原创 go语言对http协议的支持
http:无状态协议,是互联网中使用http使用http实现计算机和计算机之间的请求和响应使用纯文本方式发送和接受协议数据,不需要借助专门工具进行分析就知道协议中的数据服务器端的几个概念Request:用户请求的信息,用来解析用户的请求信息,包括 post、get、cookie、url 等信息Response:服务器需要反馈给客户端的信息Conn:用户的每次请求链接Handler:处理请求和生成返回信息的处理逻辑http报文的组成软件模型HTTP POST 简易模型。
2025-04-20 14:38:11
577
原创 goweb连接数据库操作
Golang中执行查询与增删改中stmt的执行方法有区别,由于需要把查询的结果取出来,所以还需要进行取值处理。在Golang中要求:如果修改前和修改后的值相同,RowAffected()返回0,即修改失败。修改和新增类似,只是不需要获取LastInsertId()和Sql语句是修改语句。在Go语言中要求如果要删除的数据不存在,RowsAffected()返回0。执行查询Sql时,stmt调用的是Query()方法。删除和修改,新增结构一样。
2025-04-13 14:46:16
354
原创 gorm框架的用法
/自定义连接表//显示除了双方的主键id的其他列//生成表结构//设置Article的Tags表为ArticleTag//如果tag要反向应用article,那么也要加上//添加文章标签,并自动关联DB.SetupJoinTable(&Article{},"Tags",&ArticleTag{})//必须先设置这个才能走到自定义连接表Title: "《gorm入门》",{Name: "后端"},},})//添加文章,关联已有标签。
2025-04-05 17:30:41
308
原创 gorm查询详细使用
可以再model层写一些通用的查询方式,这样外界就可以直接调用方法即可。使用结构体会过滤零值,如果是查询条件是零值的话,会不考虑这个条件。并且结构体中的条件都是and关系。加个for循环打印出所有的。没有被选中,会被赋零值。查询一次的话有两种方法。
2025-03-30 14:39:58
414
原创 goweb中文件上传和文件下载
服务端可以使用FormFile(“name”)获取到上传的文件main.goindex.html文件下载文件下载总体步骤下载时需要设置的响应头信息content-Type:内容MIME类型application/octet-stream 任意类型Content-Disposition:客户端对内容的操作方式inline 默认值,表示浏览器能解析就解析,不能解析下载attachment;filename=下载时显示的文件名,客户端浏览器恒下载mian.goindex.html
2025-03-16 14:45:28
578
原创 内存管理基础知识
对于第(3)点,是虚拟内存为了最大化利用物理内存,如果进程使用的内存足够大,则导致物理内存短暂的供不应求,那么虚拟内存也会“开疆拓土”从磁盘(硬盘)上虚拟出一定量的空间,挂在虚拟地址上,而且这个动作进程本身是不知道的,因为进程只能够看见自己的虚拟内存空间,如下图所示。虚拟内存的实现方式,大多数都是通过页表来实现的。三级Cache分别是L1、L2、L3,它们的速率是三个不同的层级,L1速率最快,与CPU速率最接近,是RAM速率的100倍,L2速率就降到了RAM的25倍,L3的速率更靠近RAM的速率。
2025-03-02 14:33:40
937
原创 goredis常见基础命令
发布者和订阅者是redis客户端,channel是redis服务端,发布者将消息发送到某个频道,订阅这个频道的订阅者就能接收到这条消息。它为每个成员关联了一个分数(score),这个分数被用来对集合中的成员进行排序。虽然成员必须是唯一的,但是分数可以重复。用法跟Subscribe一样,区别是PSubscribe订阅通道(channel)支持模式匹配。三个部分:发布者,订阅者,Channel(频道)查询指定的channel有多少个订阅者。将消息发送给指定的channel。无序集合元素不能重复。
2025-02-23 15:34:04
621
原创 TCL事务控制语言
一个事务是一个完整的逻辑单元,不可再分比如,银行账户转账,从A账户向B账户转账10000,需要执行两条update语句:以上两条DML语句必须同成功,或者同时失败,不允许出现一条成功,一条失败要想保证以上的两条DML语句同时成功或者失败,那么就需要使用数据库的”事务机制“
2025-02-09 17:41:28
349
原创 mysql查询中常见函数
从第三个开始输出,即’cdefghijk’select substr(‘abcdefghijk’,1,3);substr()、substrin()截取字符串。trim()去前后空格。
2025-01-25 16:33:17
422
原创 Linux实用指令之查找/压缩/解压缩
locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。打包是指将一大堆文件或目录什么的变成一个总的文件,压缩则是将一个大的文件通过一些压缩算法变成一个小文件。压缩多个文件,将 /home/pig.txt 和 /home/cat.txt 压缩成pc.tar.gz。tar [选项] xxx.tar.gz 打包的内容(描述:打包目录,压缩后的文件格式.tar.gz)tar指令是打包指令,最后打包后的文件是.tar.gz的文件。find [搜索范围] [选项]
2024-12-15 17:54:16
405
原创 Linux实用指令之文件目录类
less 指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端。more 指令中内置了若。指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。head -n 5 文件 (功能描述:查看文件头 5 行内容,5 可以是任意行数)ls -al >>文件 (功能描述:列表的内容追加到文件 aa.txt 的末尾)cat 文件 1 > 文件 2 (功能描述:将文件 1 的内容覆盖到文件 2)
2024-12-08 10:38:57
690
原创 中缀表达式转前缀表达式,中缀表达式转后缀表达式,计算前缀表达式,计算后缀表达式——一篇搞定
工欲善其事,必先利其器,想要学会表达式的转化,要先明白我们做转换时使用到的数据结构,栈栈是一个先进后出的数据结构,一些语言中没有,但是大家可以借助 list 或者 deque(双端队列)来模拟一个栈,只要是标准的栈操作即可。
2024-11-29 18:52:36
923
原创 vi和vim常用的三种模式以及快捷键
在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使 『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、粘贴』来处理你的文件数据。按下 i, I, o, O, a, A, r, R 等任何一个字母之后才会进入编辑模式 , 一般来说按 i 即可。编辑 /etc/profile 文件,在一般模式下,并将光标移动到 , 输入 20,再输入 shift+g。编辑 /etc/profile 文件,在一般模式下, 使用快捷键到该文档的最末行[G]和最首行[gg]
2024-11-24 17:01:12
384
原创 Linux具体的目录结构
sbin (/usr/sbin 、 /usr/local/sbin) s 就是 Super User 的意思,这里存放的是系统管理员使用的系统管理程序。/usr [常用] 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与 windows 下的 program files 目录。/bin [常用] (/usr/bin 、 /usr/local/bin) 是 Binary 的缩写, 这个目录存放着最经常使用的命令。/opt 这是给主机额外安装软件所存放的目录。
2024-11-18 20:33:54
324
原创 用channel,mutex实现交叉输出
但是time.Sleep(time.Millisecond)会浪费cpu资源,执行时间长。运行总时长10.226ms左右。使用 channel。
2024-11-17 16:56:05
207
原创 go语言slice学习笔记
切片的长度可以改变,是一个可变的数组len()可以求切片元素个数cap可以求切片最大的扩张容量,但不能超出数组的限制定义切片:var a []int切片的语法:var 切片名 []类型 = 数组的一个片段的引用。
2024-11-10 15:42:50
349
原创 go语言文件操作的常用方法
对成功的调用,返回值err为nil而非EOF,因为Copy定义为从src读取直到EOF,它不会将读取到EOF视为应报告的错误。它会使用指定的选项(如O_RDONLY等)、指定的模式(如0666等)打开指定名称的文件。ReadAt从指定的位置(相对于文件开始位置)读取len(b)字节数据并写入b。offset为相对偏移量,而whence决定相对位置:0为相对文件开头,1为相对当前位置,2为相对文件结尾。一般来说,这表示将文件系统的最近写入的数据在内存中的拷贝刷新到硬盘中稳定保存。它返回可能出现的错误。
2024-11-02 11:13:43
411
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅