计算机专业毕业设计项目推荐11-博客项目(Go+Vue+Mysql)

news/2025/2/12 8:49:51/

博客项目(Go+Vue+Mysql)

    • **介绍**
    • **系统总体开发情况-功能模块**
    • **各部分模块实现**

介绍

  • 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较了解计算机专业毕业设计流程以及模式,在编写的过程中可以说几乎是参照毕业设计目录样式来进行的.
  • 博主分享的基本都是自己接触过的项目Demo,整理了一下自己做过的项目,将可以作为毕业设计的项目分享给大家。(注:项目基本都是博主自己用过的,所以不存在远古代码无法使用

系列的文章后端都是采用Java或者Go语言,前端主要是采用的原生JsVue框架搭建的。数据都是采用Mysql。还有较少的微信小程序开发。开发工具这些可以自己选择,我分享一下自己的Go语言开发我用的Vscode,前端用的HBuilder X,测试接口Postman,Java开发用的IDEA。数据库查看用的navicat,上传服务器Xshell 7和Xftp 7。

系统总体开发情况-功能模块

各部分模块实现

今天主要是将后端实现登录效果和改一些前端的代码

前端:
在这里插入图片描述
在这里插入图片描述

因为原始代码是将侧边栏写在了App.vue里面,所以我改了一下增加了Sidebar.vue将侧边栏新建了一个文件保存。然后在App.vue里面引用。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(这也是我的项目哈,俺叫王先生以前的名字)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

package modelimport ("github.com/dgrijalva/jwt-go"
)//User表
type User struct {Id       int    `json:"id"`Username string `json:"username"`Password string `json:"password"`
}// UserLogin 用户登录
func UserLogin(username string) (User,error){mod := User{}err :=Db.Get(&mod, "select * from userlogin where username=? limit 1", username)return mod,err
}//UserClaims    token 携带的数据type UserClaims struct {Id       int    `json:"id"`Username string `json:"username"`Password string `json:"password"`jwt.StandardClaims
}
package routeimport (// "fmt""github.com/zxysilent/utils""github.com/dgrijalva/jwt-go""blog_go/model""github.com/labstack/echo"
)// ServerHeader middleware adds a `Server` header to the response.
func ServerHeader(next echo.HandlerFunc) echo.HandlerFunc {return func(ctx echo.Context) error {ctx.Response().Header().Set(echo.HeaderServer, "Echo/3.0")// fmt.Println(ctx.Response().Header())tokenString := ctx.FormValue("token")claims := model.UserClaims{}token, err := jwt.ParseWithClaims(tokenString, &claims, func(token *jwt.Token) (interface{}, error) {return []byte("123"), nil})if err==nil && token.Valid {return next(ctx)} else {return ctx.JSON(utils.ErrToken("验证失败"))}}
}
package routeimport ("github.com/labstack/echo/middleware""blog_go/control""github.com/labstack/echo"
)func Run(){blog := echo.New()blog.Use(middleware.CORS())blog.Use(middleware.Logger())blog.Use(middleware.Recover())//用户登录blog.POST("/admin/login", control.UserLogin)adm:=blog.Group("/admin",ServerHeader)blog.GET("/", control.Index)blog.Logger.Fatal(blog.Start(":1323"))// blog.Start(":1323")
}
package controlimport (// "fmt""time""github.com/zxysilent/utils""blog_go/model""github.com/dgrijalva/jwt-go""github.com/labstack/echo"
)type login struct {Username string `json:"username"`Password string `json:"password"`
}func UserLogin(ctx echo.Context) error {ipt := login{}err:=ctx.Bind(&ipt)if err!=nil{return ctx.JSON(utils.ErrIpt("输入有误", err.Error()))}mod, err :=model.UserLogin(ipt.Username)if err!=nil {return ctx.JSON(utils.ErrIpt("用户名错误", err.Error()))}if mod.Password !=ipt.Password{return ctx.JSON(utils.ErrIpt("密码错误"))}// Create the UserClaims 生成claims := model.UserClaims{Id:mod.Id,Username:mod.Username,Password:mod.Password,StandardClaims: jwt.StandardClaims{ExpiresAt: time.Now().Add(2*time.Hour).Unix(),},}token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)//自己的密钥ss, err := token.SignedString([]byte("123"))// fmt.Printf("%v %v", ss, err)return ctx.JSON(utils.Succ("登录成功", ss))
}	前端写的路由守卫:```javascript
import Vue from 'vue'
import Router from 'vue-router'// import Login from '@/view/Login'
Vue.use(Router)const router = new Router({routes: [{path: '/',redirect: '/login'},{path: '/login',component: resolve => require(['@/view/login'], resolve),meta: {title: '后台登陆'},},{path: '/organizationManage',component: resolve => require(['@/view/index/index'], resolve),meta: {title: '首页'},redirect: to => {return '/organizationManage'},children:[{path: '/organizationManage',component: resolve => require(['@/view/organization_manage/index'], resolve),meta: {title: '组织管理'},},{path: '/staffManage',component: resolve => require(['@/view/staff_manage/index'], resolve),meta: {title: '员工管理'},},],},{path: '/personManage',component: resolve => require(['@/view/index/index'], resolve),meta: {title: '个人管理'},redirect: to => {return '/personManage'},children:[{path: '/personManage',component: resolve => require(['@/view/personal/personinformation'], resolve),meta: {title: '个人管理1'},},// {// 	path: '/staffManage',// 	component: resolve => require(['@/view/staff_manage/index'], resolve),// 	meta: {// 		title: '员工管理'// 	},// },],},]
});//导航守卫限制页面
// 使用 router.beforeEach 注册一个全局前置守卫,判断用户是否登陆
router.beforeEach((to, from, next) => {if (to.path === '/login') {next();} else {let token = localStorage.getItem('token');if (token === null || token === '') {next('/');} else {next();}}
});export default router;

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

 async submitForm(formName) {this.$refs[formName].validate(async (valid) => {if (valid) {const res = await useredit({token: getStore('token'),nickname:this.formLabelAlign.nickname,email:this.formLabelAlign.email,signature:this.formLabelAlign.signature})console.log(res)if(res.code==200){console.log('submit!');}else{console.log("修改失败");}} else {console.log('error submit!!');return false;}});},
// UserEdit 个人信息修改
func UserEdit(nickname,email,signature,token string) error {tx,_ :=Db.Begin()//事务result, err :=tx.Exec("update userinformation set `nickname`=?,email=?,signature=? where token=?", nickname,email,signature,token)if err!=nil{tx.Rollback()return err}rows,_ :=result.RowsAffected()if rows<1	{tx.Rollback()return errors.New("row affecter<1")}tx.Commit()return nil
}

文章管理
在这里插入图片描述
后台管理页面:
在这里插入图片描述
在这里插入图片描述

编辑删除功能都做啦。当然也少不了新增。

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

最后想说的
对项目有任何疑问,或者说想学习项目开发的都可以来问博主哦~。也可以选题,开题指导,论文整体框架或者项目整体开发指导。

计算机专业毕业设计项目(附带有配套源码以及相关论文,有需要的同学可以联系博主,但是不免费哦)。

联系方式
微信号:wxid_rrun0cqao5ny22

在这里插入图片描述


http://www.ppmy.cn/news/1137947.html

相关文章

配置文件生成器-秒杀SSM的xml整合

配置文件生成器-秒杀SSM的xml整合 思路&#xff1a; 通过简单的配置&#xff0c;直接生成对应配置文件。 maven坐标 <dependencies><!-- 配置文件生成 --><dependency><groupId>org.freemarker</groupId><artifactId>freemarker<…

Golang interface 接口的应用场景 使用细节

应用场景介绍 对初学者讲&#xff0c;理解接口的概念不算太难&#xff0c;难的是不知道什么时候使用接口&#xff0c;下面我例举几个应用场景&#xff1a; 1.说现在美国要制造轰炸机&#xff0c;武装直升机&#xff0c;专家只需把飞机需要的功能/规格定下来即可&#xff0c;然…

QT之tcp通信的简单例程

QT之tcp通信的简单例程 例1 客户端例2 服务端 例1 客户端 #include <QTcpSocket> #include <QHostAddress> int main(int argc, char *argv[]) { QApplication app(argc, argv); QTcpSocket socket; socket.connectToHost(QHostAddress::LocalHost, 1234)…

【TensorFlow Hub】:有 100 个预训练模型等你用

要访问TensorFlow Hub&#xff0c;请单击此处 — https://www.tensorflow.org/hub 一、说明 TensorFlow Hub是一个库&#xff0c;用于在TensorFlow中发布&#xff0c;发现和使用可重用模型。它提供了一种使用预训练模型执行各种任务&#xff08;如图像分类、文本分析等&#xf…

第三课 哈希表、集合、映射

文章目录 第三课 哈希表、集合、映射lc1.两数之和--简单题目描述代码展示 lc30.串联所有单词的子串--困难题目描述代码展示 lc49.字母异位分组--中等题目描述代码展示 lc874.模拟行走机器人--中等题目描述代码展示 lc146.LRU缓存--中等题目描述相关补充思路讲解代码展示图示理解…

C语言之自定义类型_结构体篇(1)

目录 什么是结构&#xff1f; 结构体类型的声明 常规声明 特殊声明-匿名结构体 结构体变量的定义和初始化和访问 定义 初始化 访问 嵌套结构体 结构体的自引用 什么是结构体的自引用 NO1. NO2. 热门考点&#xff1a;结构体内存对齐 产生内存对齐 NO1 NO2 …

推荐系统实践 笔记

诸神缄默不语-个人CSDN博文目录 这是我2020年写的笔记&#xff0c;我从印象笔记搬过来公开。 如果那年还在读本科的同学也许有印象&#xff0c;那年美赛出了道根据电商评论给商户提建议的题。其实这件事跟推荐系统关系不大&#xff0c;但我们当时病急乱投医&#xff0c;我打开…

MySQL的结构化语言 DDL DML DQL DCL

一、SQL结构化语言介绍 数据查询语言DQL&#xff1a;其语句称为“数据检索语言”&#xff0c;用以从库中获取数据&#xff0c;确定数据怎样在应用程序给出&#xff0c;保留select是dql&#xff08;也是所有sql&#xff09;用的最多的动词 数据操作语言DML:其语句包括动词insert…