搭建博客系统#Golang

WANLI 博客系统

项目介绍

基于vue3和gin框架开发的前后端分离个人博客系统,包含md格式的文本编辑展示,点赞评论收藏,新闻热点,匿名聊天室,文章搜索等功能。

项目已经部署并运行,快速开发可以查看博客:https://blog.csdn.net/m0_73337964/article/details/140688637


功能展示

B 站视频

图片展示:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


技术介绍

开发环境
开发工具功能描述
GoLand后端开发
Vscode前端开发
ApifoxAPI测试
Ubuntu依赖软件运行
xftp、xsheelLinux 远程工具
开发环境版本
GoLang1.22.3
nodejs20.14.0
MySQL8.0
Elasticsearch、kibana、ik7.10.1
Redislatest

技术栈

这里只写一些主流的通用技术,详细第三方库:前端参考 package.json 文件,后端参考 go.mod 文件

功能描述前端官方地址
Vue3框架vuejshttps://cn.vuejs.org/
Vue组件ant-design-vuehttps://next.antdv.com/docs/vue/introduce-cn/
Mark Downmd-editor-v3https://imzbf.github.io/md-editor-v3/
状态管理工具piniahttps://pinia.vuejs.org/
构建工具vitehttps://cn.vitejs.dev/
可视化图表库echartshttps://echarts.apache.org/zh/index.html
功能描述后端官方地址
GO语言golanghttps://github.com/golang/go
WEB框架ginhttps://gin-gonic.com/zh-cn/docs/
API文档swaggohttps://github.com/swaggo
ORM 库gormhttps://github.com/go-gorm/gorm
日志库logrushttps://github.com/sirupsen/logrus

本地运行

自行安装 Golang、Node、MySQL、Redis 、Elasticsearch 环境
Golang 安装参考官方文档
Node 建议安装使用 https://nodejs.org/zh-cn 的长期维护版
MySQL、Redis、Elasticsearch 建议使用 Docker 运行

后端项目运行:

# 1、启动MySQL、Redis、Elasticsearch,其中mysql需要新建一个库
# 2、修改项目运行的配置文件 settings.yaml# 3、初始化运行环境
go mod tidy 				# 下载当前项目所依赖的包
go run main.go -db 			# mysql建表
go run main.go -es create	# elasticsearch建索引# 4、mysql插入菜单表数据
INSERT INTO gvb.menu_models (id, created_at, updated_at, title, path, slogan, abstract, abstract_time, banner_time, sort) VALUES (1, NOW(), NOW(), '首页', '/', '众神眷恋的幻想乡', '天寒地冻路远马亡又何妨', 5, 5, 1);
INSERT INTO gvb.menu_models (id, created_at, updated_at, title, path, slogan, abstract, abstract_time, banner_time, sort) VALUES (2, NOW(), NOW(), '新闻', '/news', '新闻三分钟,知晓天下事', '震惊!男人看了会沉默,女人看了会流泪!不转不是中国人!',  5, 5, 2);
INSERT INTO gvb.menu_models (id, created_at, updated_at, title, path, slogan, abstract, abstract_time, banner_time, sort) VALUES (3, NOW(), NOW(), '文章搜索', '/search', '文章搜索', '文章搜索',  5, 5, 3);
INSERT INTO gvb.menu_models (id, created_at, updated_at, title, path, slogan, abstract, abstract_time, banner_time, sort) VALUES (4, NOW(), NOW(),'聊天室', '/chat_group', '聊天室', '聊天室',  5, 5, 4);# 5、创建第一个用户,后续可在前端创建或注册
go run main.go -u admin		# 管理员
go run main.go -u user		# 普通用户# 6、启动项目
go run main.go

前端项目运行:

# 下载当前项目所依赖的包
npm install
# 启动项目
npm run dev

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/50105.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GitHub每日最火火火项目(7.25)

1. 项目名称:public - apis / public - apis 项目介绍:这是一个集体列表,收集了各种免费的 APIs。在当今的软件开发中,API(应用程序编程接口)扮演着至关重要的角色,它们允许不同的应用程序和服…

基于Go语言开发调用高德API地址逆编码

最近公司有一个需求,有一批数据只有经纬度没有确定地址,现在需要根据经纬度补全地址,刚好高德提供这么一个API,可以拿来使用。 不过因为提供的数据的经纬度是大地2000坐标系,跟高德坐标系还不一样,需要进行…

培训第十一天(nfs与samba共享文件)

上午 1、环境准备 (1)yum源 (一个云仓库pepl仓库) [rootweb ~]# vim /etc/yum.repos.d/hh.repo [a]nameabaseurlfile:///mntgpgcheck0[rootweb ~]# vim /etc/fstab /dev/cdrom /mnt iso9660 defaults 0 0[rootweb ~]# mount -a[…

WebKit与PWA:打造无缝的渐进式Web应用体验

WebKit与PWA:打造无缝的渐进式Web应用体验 随着移动互联网的快速发展,用户对于Web应用的体验要求越来越高。Progressive Web Apps(PWA),即渐进式Web应用,以其无需安装、易于更新、跨平台等特性&#xff0c…

JavaSE--基础语法--继承和多态(第三期)

一.继承 1.1我们为什么需要继承? 首先,Java中使用类对现实世界中实体来进行描述,类经过实例化之后的产物对象,则可以用来表示现实中的实体,但是 现实世界错综复杂,事物之间可能会存在一些关联,那在设计程…

Spring-一个接口拥有多实现类-企业应用场景

前言: 由于java的多态特性,往往一个接口有多种具体的实现,传统的做法是在一个实现类中新建不同方法。但这种做法既不符合OOP的思想,而且当每种实现逻辑都相对复杂的时候,会让我们的代码显得臃肿和凌乱,当我们只需要使用其中一种实现的时候,没有必要去关心其他实现,所以…

Java读取文件中多个JSON对象,并且16进制字符串和byte相互转换,将byte转为16进制字符串并写入json文件

Java读取文件中多个JSON对象 File file new File("/home/renjx/testcases.json");//将json转为mapsObjectMapper objectMapper new ObjectMapper();List<Map<String, String>> maps objectMapper.readValue(file, new TypeReference<List<Map&…

Apache虚拟主机VirtualHost配置项详解

在Apache中,VirtualHost容器用于定义一个虚拟主机的配置,它允许在单一的物理服务器上托管多个不同的网站,每个网站可以有自己的域名、文档根目录、错误日志等。VirtualHost内的配置项非常灵活,可以包含从基本的网站信息到高级的URL重写和安全设置。 以下是一些常见的Virtu…

Java之数组应用-冒泡排序-二分查找

冒泡排序 冒泡(Bubble Sort)排序是一种简单排序算法&#xff0c;它通过依次比较交换两个相邻元素实现功能。每一次冒泡会让至少一个元素移动到它应该在的位置上&#xff0c;这样 n 次冒泡就完成了 n 个数据的排序工作。 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”…

实在智能RPA助力三大运营商用“AI+RPA”打造新质生产力!

近年来&#xff0c;人工智能及自动化技术的突破性进展&#xff0c;正深刻地影响和重塑全球的生活生产模式。 作为我国现代化和数字化进程中的先行军的运营商行业&#xff0c;以中国电信、中国联通和中国移动等为代表的运营商企业&#xff0c;正致力于把握这一历史机遇&#xff…

SpringBoot项目配置多环境env

javaSpringBoot项目多环境配置 为什么maven Profiles 救命项目的pom文件管理 为什么 项目里面需要集成测试环境、开发、生产、多云环境&#xff0c;不仅需要application.yml,还需要加载别的config配置文件 故&#xff0c;我需要便捷多环境配置管理 maven Profiles 救命 项目的…

MySQL练手 --- 1934. 确认率

题目链接&#xff1a;1934. 确认率 思路 由题可知&#xff0c;两个表&#xff0c;一个表为Signups注册表&#xff0c;另一个表为Confirmations信息确认表&#xff0c;表的关联关系为 一对一&#xff0c;且user_id作为两个表的连接条件&#xff08;匹配字段&#xff09;&#…

【C# WInForm】将TextBox从输入框设置为文本框

1.需求情形&#xff1a; textbox作为最常用的控件之一&#xff0c;通常是用来输入文本信息或者显示文字&#xff0c;但是如果要在界面中显示大段文本&#xff0c;一个带有边框、可选中的文本样式似乎不合适。像这样&#xff1a; 我需要的是这段文字不仅能跨行&#xff0c;而且…

Atlassian Intelligence工具集解析:从自然语言到JQL处理,从虚拟代理到AI摘要、编辑器中的生成式AI等,全方位提升团队协作效率

2023年&#xff0c;Atlassian推出了Atlassian Intelligence——这是一款功能强大的团队协作增强工具&#xff0c;托管在其高级和企业级云平台上。Atlassian遵循 “释放团队潜力”的使命&#xff0c;利用合乎道德的AI模型来加速组织的现有能力。通过人机协作&#xff0c;用户可以…

判断文件格式

判断文件格式 判断文件格式,以便处理: if UpperCase(ExtractFileExt(sFileName)) <> .PDF thenbeginimgCapture.Picture.Graphic := nil;imgCapture.Picture.LoadFromFile(sFileName);end;unit SysUtils; function ExtractFileName(const FileName: string): string;/…

Unity3D 水面Mesh生成详解

在Unity3D中&#xff0c;创建逼真的水面效果是许多游戏和仿真项目中的重要部分。水面的动态效果通常通过Mesh&#xff08;网格&#xff09;的顶点动画来实现。本文将详细介绍如何在Unity3D中生成动态的水面Mesh&#xff0c;并给出具体的代码实现。. 对惹&#xff0c;这里有一个…

Vite+Vue 3 环境变量配置

在开发 Web 应用时&#xff0c;我们常常需要根据不同的环境&#xff08;如开发、测试、生产&#xff09;进行不同的配置。 Vite 提供了灵活的环境变量配置机制在一个特殊的 import.meta.env 对象上暴露环境变量&#xff0c;这些变量在构建时会被静态地替换掉。让我们可以轻松管…

c++笔记2

目录 2.2 栈底&#xff08;bottom&#xff09; } 大数乘大数 节点&#xff1a;包含一个数据元素及若干指向子树分支的信息 。 节点的度&#xff1a;一个节点拥有子树的数目称为节点的度 。 叶子节点&#xff1a;也称为终端节点&#xff0c;没有子树的节点或者度为零的节点…

JavaScript Promise:异步编程的新纪元

在 JavaScript 中&#xff0c;Promise 是一种用于处理异步操作的现代化方法&#xff0c;它解决了回调地狱&#xff08;Callback Hell&#xff09;的问题&#xff0c;提供了更简洁、更强大的异步编程模型。本文将深入探讨 Promise 的概念、工作原理、优势以及如何在实际项目中使…

Linux 防火墙配置【iptable,firewalld,ufw】

使用 iptables 添加端口 打开端口 假设你想要打开TCP的8080端口&#xff0c;可以使用以下命令&#xff1a; sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT保存配置 不同的Linux发行版保存iptables规则的方法可能不同。常见的方法有&#xff1a; 对于基于Debian的系…