当前位置: 首页 > news >正文

成都鲜花网站建设建立网络平台要多少钱

成都鲜花网站建设,建立网络平台要多少钱,如何进行网站建设,山东建设局网站电工打造博客系统 项目概述 在本项目中#xff0c;我们将创建一个简单的博客系统#xff0c;重点实现CRUD#xff08;创建、读取、更新、删除#xff09;操作和用户管理。这个博客系统将使用户能够发布文章#xff0c;评论#xff0c;并管理其个人账户信息。 目标 实现用…打造博客系统 项目概述 在本项目中我们将创建一个简单的博客系统重点实现CRUD创建、读取、更新、删除操作和用户管理。这个博客系统将使用户能够发布文章评论并管理其个人账户信息。 目标 实现用户注册、登录、注销功能。用户能够创建、查看、更新和删除自己的博客文章。实现基本的评论功能。使用Go语言的标准库和框架实现项目结构化管理。 技术栈 编程语言GoWeb框架Gin数据库GORMGo ORM数据库SQLite用于简化操作 系统架构与流程图 以下是该系统的基本架构流程图 [用户输入] -- [前端页面] -- [Gin路由] -- [控制器] -- [GORM ORM] -- [数据库]我们将使用Gin作为HTTP框架GORM作为ORM框架连接至SQLite数据库。 数据库设计 数据表设计 表名字段类型描述usersidINTEGER用户ID主键自增usernameVARCHAR(50)用户名唯一passwordVARCHAR(255)密码哈希emailVARCHAR(100)邮箱唯一blogsidINTEGER博客ID主键自增user_idINTEGER用户ID外键titleVARCHAR(100)博客标题contentTEXT博客内容created_atDATETIME创建时间updated_atDATETIME更新时间commentsidINTEGER评论ID主键自增blog_idINTEGER博客ID外键user_idINTEGER用户ID外键contentTEXT评论内容created_atDATETIME创建时间 数据库初始化 创建一个名为blog_system.db的SQLite数据库并使用以下代码初始化 package mainimport (gorm.io/driver/sqlitegorm.io/gormlog )type User struct {ID uint gorm:primaryKeyUsername string gorm:uniquePassword stringEmail string gorm:unique }type Blog struct {ID uint gorm:primaryKeyUserID uintTitle stringContent stringCreatedAt time.TimeUpdatedAt time.Time }type Comment struct {ID uint gorm:primaryKeyBlogID uintUserID uintContent stringCreatedAt time.Time }func InitDB() *gorm.DB {db, err : gorm.Open(sqlite.Open(blog_system.db), gorm.Config{})if err ! nil {log.Fatalf(failed to connect database: %v, err)}db.AutoMigrate(User{}, Blog{}, Comment{})return db }用户管理模块 用户注册 // 注册用户 func Register(db *gorm.DB, username, password, email string) error {user : User{Username: username, Password: HashPassword(password), Email: email}if err : db.Create(user).Error; err ! nil {return err}return nil }用户登录 // 登录用户 func Login(db *gorm.DB, username, password string) (*User, error) {var user Userif err : db.Where(username ?, username).First(user).Error; err ! nil {return nil, err}if !CheckPasswordHash(password, user.Password) {return nil, fmt.Errorf(incorrect password)}return user, nil }用户注销 用户可以通过服务端清除session实现注销这里简单演示。 // 注销用户 func Logout(c *gin.Context) {session : sessions.Default(c)session.Clear()session.Save()c.JSON(http.StatusOK, gin.H{message: logged out}) }博客操作模块 创建博客 // 创建博客 func CreateBlog(c *gin.Context) {var blog Blogif err : c.ShouldBindJSON(blog); err ! nil {c.JSON(http.StatusBadRequest, err)return}blog.CreatedAt time.Now()blog.UpdatedAt time.Now()if err : db.Create(blog).Error; err ! nil {c.JSON(http.StatusInternalServerError, err)return}c.JSON(http.StatusOK, blog) }读取博客 // 读取博客列表 func GetBlogs(c *gin.Context) {var blogs []Blogdb.Find(blogs)c.JSON(http.StatusOK, blogs) }// 读取单篇博客 func GetBlog(c *gin.Context) {id : c.Param(id)var blog Blogif err : db.First(blog, id).Error; err ! nil {c.JSON(http.StatusNotFound, err)return}c.JSON(http.StatusOK, blog) }更新博客 // 更新博客 func UpdateBlog(c *gin.Context) {id : c.Param(id)var blog Blogif err : db.First(blog, id).Error; err ! nil {c.JSON(http.StatusNotFound, err)return}if err : c.ShouldBindJSON(blog); err ! nil {c.JSON(http.StatusBadRequest, err)return}blog.UpdatedAt time.Now()db.Save(blog)c.JSON(http.StatusOK, blog) }删除博客 // 删除博客 func DeleteBlog(c *gin.Context) {id : c.Param(id)if err : db.Delete(Blog{}, id).Error; err ! nil {c.JSON(http.StatusNotFound, err)return}c.JSON(http.StatusOK, gin.H{message: blog deleted}) }评论功能模块 添加评论 // 添加评论 func AddComment(c *gin.Context) {var comment Commentif err : c.ShouldBindJSON(comment); err ! nil {c.JSON(http.StatusBadRequest, err)return}comment.CreatedAt time.Now()if err : db.Create(comment).Error; err ! nil {c.JSON(http.StatusInternalServerError, err)return}c.JSON(http.StatusOK, comment) }获取评论 // 获取博客的评论 func GetComments(c *gin.Context) {blogID : c.Param(blogId)var comments []Commentdb.Where(blog_id ?, blogID).Find(comments)c.JSON(http.StatusOK, comments) }项目结构 以下是我们项目的结构示意 /blog-system├── main.go├── models.go├── handlers.go├── routes.go├── db.gomain.go主入口文件负责启动服务。models.go定义数据库模型。handlers.go处理请求的相关逻辑。routes.go定义路由。db.go数据库初始化和相关操作。 main.go 文件示例 package mainimport (github.com/gin-gonic/gingorm.io/gorm )var db *gorm.DBfunc main() {db InitDB()r : gin.Default()SetRoutes(r)r.Run(:8080) }路由配置 package mainimport github.com/gin-gonic/ginfunc SetRoutes(r *gin.Engine) {r.POST(/register, func(c *gin.Context) {// 处理用户注册})r.POST(/login, func(c *gin.Context) {// 处理用户登录})r.POST(/blogs, CreateBlog)r.GET(/blogs, GetBlogs)r.GET(/blogs/:id, GetBlog)r.PUT(/blogs/:id, UpdateBlog)r.DELETE(/blogs/:id, DeleteBlog)r.POST(/blogs/:blogId/comments, AddComment)r.GET(/blogs/:blogId/comments, GetComments) }安全性与哈希处理 记得在所有密码存储过程中一定要使用哈希处理更加安全。例如使用bcrypt库。 package mainimport (golang.org/x/crypto/bcrypt )func HashPassword(password string) string {bytes, _ : bcrypt.GenerateFromPassword([]byte(password), 14)return string(bytes) }func CheckPasswordHash(password, hash string) bool {err : bcrypt.CompareHashAndPassword([]byte(hash), []byte(password))return err nil }总结 以上内容提供了一个基于Go语言的简单博客系统的创建指南通过实现用户管理和CRUD操作你可以深入理解Go语言的应用场景和开发流程。你可以根据该代码扩展新功能例如用户角色管理、使用JWT进行验证等进一步提升项目的复杂度与实用性。希望这个项目对你有帮助勇于实践将理论转化为生产力。 怎么样今天的内容还满意吗再次感谢观众老爷的观看关注GZH凡人的AI工具箱回复666送您价值199的AI大礼包。最后祝您早日实现财务自由还请给个赞谢谢
http://www.dnsts.com.cn/news/19555.html

相关文章:

  • 如何做交互式网站36氪国外做网站
  • 网站如何开启gzip压缩wordpress ck video
  • 百度云 免费 网站主机女人吃男人做床视频网站
  • 网站备案时间怎么查询seo公司优化排名
  • 泉州seo网站建设费用怎么样子做网站
  • 怎么做这个购物网站中国互联网金融协会官网
  • 做高端网站公司徐州做网站的公司哪家好
  • 数据管理网站模板中国机加工网
  • 做网站设计的公司叫什么微信小程序数据库搭建
  • 自己做的网站如何上传网上南康市建设局网站
  • python3 网站开发网站备案号在哪儿查询
  • 做网站导航多大字号地方门户网站建设方案
  • 关于网站建设的意见国际时事新闻2022最新
  • 深圳企业网站建设服务济南网络科技公司排名
  • 文件乱码了怎么恢复江西网站优化
  • 北京建设教育网站网站建设需要了解的
  • 手机端网站怎么做高唐网站制作
  • 免费网站优化怎么做wordpress+伪静态+403
  • 前端个人网站怎么做用数字做域名的网站
  • 什么网站权重高网站开发专员岗位职责
  • 做ppt图片用的网站昆山市建设监察大队官方网站
  • 优秀网站制作定制简创网站建设费用
  • 35互联做网站多少钱湖南网站建设开发公司
  • 律师在哪个网站做wordpress用户上传
  • 素马网站建设服务收费标准排名优化公司哪家好
  • 促销礼品网站建设网站建设价格比较
  • 网站前端设计软件沈阳正规的男科医院
  • 做vi设计的国外网站精品课程网站建设摘要
  • 优化网站标题和描述的方法app注册推广平台
  • 公司网站建设的不足西安网站开发公司