gin博客项目开发日志1

gin项目博客系统伪第一代

项目概述

1.1 目标

  • 实现一个功能完整、易用的博客系统,允许用户发布、编辑和管理博客文章。

1.2 背景

  • 看到网上有很多语言写的博客系统,但go的却很少,正好,现在我在学go,可以拿博客来练练手,为什么选博客呢?博客系统主要能用于发表自己的观点、经验和知识。它可以提供一个平台,能让我和朋友们创建、编辑和评论文章,这样既能练习增删改查的能力,可扩展性和实用性也是一绝,在之后仍然能加入很多功能,是小白练手,老白回顾的无二之选!

用户角色

  • 2.1 访客

    可以查看博客文章、评论和用户信息。

  • 2.2 管理员

    有所有用户权限,并可以管理用户、文章和评论。

  • 2.3 用户

    在以后会加入普通用户注册实现所与人都能发布的功能: 具有访客权限,并可以发布、编辑和删除自己的博客文章,以及对其他文章发表评论。

    **目前只决定给用户增加注册和评论的功能。**以后可能会开聊天室,但不太可能会给用户太多权限。

功能需求

3.1 用户认证

- 允许用户注册账户,并提供登录功能。3.2 博客文章管理- 只有管理员用户可以发布、编辑和删除自己的博客文章。- 所有用户可以查看博客文章列表,按时间或其他标准排序。3.3 评论系统- 注册用户可以对博客文章发表评论。- 用户可以回复评论。3.4 用户管理- 管理员可以查看和管理所有用户。- 管理员可以禁用或删除用户账户。3.5 高级搜索和过滤- 允许用户通过关键字或其他标准搜索博客文章。3.6 用户设置- 注册用户可以编辑个人资料,包括头像、用户名等。3.7 管理员设置- 管理员可以对博客内容进行增加修改和删除。

技术要求

4.1 后端

使用gin+gorm+mysql编写后端服务。

  • 使用数据库MySQL存储用户信息、博客文章和评论。
    • 使用适当的ORM库(例如gorm)进行数据库交互。
    • 实现RESTful API,用于前端与后端的通信。

4.2 前端 - 使用React、Vue.js或Angular等现代前端框架。 - 与后端通过API进行通信。 - 实现用户友好的用户界面。(未来的计划)

(初版仍然是前后端不分离网站,基于tmpl模板制作)

在之后也会持续更新,希望未来能加入的功能:音乐放映厅,聊天室,对接ai模型api,对接新闻模块,等,希望有生之年能看到第10版;

由于demo的存在是必要的,所以先从最初的V0版本做起;

目前的

计划是V0版本把大的框架拉起来,

image-20231202193619304

V0版本构想

由于需要demo的存在,毕竟是需要有部分的试错的,所以先从最初的V0版本做起;

目前的计划是V0版本把大的框架拉起来,先不在乎细节和安全,先实现功能;

image-20231202193828452

IMG_20231202_193737
image-20231202194045280,应该可以包揽mvc架构的全部模块,不过前期有些不会用到。按照网上流传的项目框架制作image-20231202201714103

目前计划前期功能和页面总览

管理员登录页面(已基本完成):

image-20231202194344236

登陆后进入后台主页面,前端主页计划采用

左侧菜单,右侧内容的布局,使用iframe结构

这种布局多见于系统后台管理,基本分为三部分,即顶部标、左侧菜单、右侧内容。 基本功能是点击左侧菜单,右侧内容转到相应的界面。点击顶部logo回到首页。

image-20231202195239874

预期效果

image-20231202195408002

image-20231202195516405

目前我这一页实现了点击博客标题,会在右侧刷新博客内容的功能;


第三页,点击右上角进入管理员登陆,输入后进入后台可以进行对博客,用户,评论的增删改查功能;

image-20231203114242231

  1. image-20231203114320095

    # 普通用户流程1. 用户进入主页
    2. 用户点击分类
    3. 用户进入详情页
    4. 用户点击详细博客名
    5. 右侧渲染博客内容
    6. 用户下拉
    7. 用户点击评论
    8. 如果用户未注册:a. 进行用户注册b. 注册后,用户可以发送评论# 管理员流程1. 管理员进入主页
    2. 管理员点击右上角登录管理后台
    3. 管理员登录后,可以进行以下操作:a. 对博客进行增删改查b. 对用户进行增删改查c. 对评论进行增删改查
    

    这是最基础的功能,最晚预计在闭组之前完成,时间充足会增加更多功能;

代码整体实现框架

:经过了一周的艰苦奋斗,项目总算是得以使用(功能基本完全)

现在,稍微讲述一下基本功能的实现

image-20231209084027993

image-20231209084041388

image-20231209084109263

先分模块讲解如何制作,首先是登陆界面制作,

待更新。。。

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

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

相关文章

组件之间传值

目录 1:组件中的关系 2:父向子传值 3:子组件向父组件共享数据 4:兄弟组件数据共享 1:组件中的关系 在项目中使用到的组件关系最常用两种是,父子关系,兄弟关系 例如A组件使用B组件或者C组件…

深入了解UDP协议:特点、应用场景及市面上常见软件案例

目录 引言 UDP的特点 UDP的应用场景 市面上使用UDP的软件案例 结论 引言 在计算机网络中,UDP(User Datagram Protocol)是一种面向无连接、无状态的传输层协议。与TCP相比,UDP具有独特的特点和适用场景。本文将深入探讨UDP协…

解码方法dp

1.状态表示 2.状态转移方程 3.初始化 4.填表顺序 从左往右 5.返回值 dp[n-1] 6.处理边界问题以及初始化问题的技巧

Docker笔记:数据卷挂载的三种方式及物理机与容器内的环境变量的传递

容器数据挂载到物理机上的三种方式 1 ) 实名(指定路径)挂载数据卷 docker run -v 物理机目录:容器内目录 镜像id示例 docker run -it -d --name mynginx_p_v -p 82:80 -v /root/www:/usr/share/nginx/html nginx此时访问 会报 403 forbidden因为 物理机上的 root/…

Electron[5] 渲染进程和主进程

1 进程 Electron里头的进程分为渲染进程和主进程。简单理解: main.js就是主进程每个页面就是渲染进程一个Electron应用仅有一个主进程,可以有多个渲染进程 上面的这些概念很重要,不展开细讲。 2 进程职责 主进程是用来实现应用的基础功能…

【小沐学Python】Python实现TTS文本转语音(speech、pyttsx3、百度AI)

文章目录 1、简介2、Windows语音2.1 简介2.2 安装2.3 代码 3、pyttsx33.1 简介3.2 安装3.3 代码 4、ggts4.1 简介4.2 安装4.3 代码 5、SAPI6、SpeechLib7、百度AI8、百度飞桨结语 1、简介 TTS(Text To Speech) 译为从文本到语音,TTS是人工智能AI的一个模组&#xf…

K8S学习指南(6)-k8s核心概念label和label selector

文章目录 前言Label是什么?示例 Label Selector是什么?示例 Label的使用场景Label Selector的类型Label和Label Selector的高级应用使用Label Selector选择Service的后端Pod使用Label Selector进行滚动更新 总结 前言 Kubernetes是一个强大的容器编排平…

Python从入门到精通

一、Python基础语法 1、字面量 掌握字面量的含义了解常见的字面量类型基于print语句完成各类字面量的输出 什么是字面量? 字面量:在代码中,被写下来的的固定的值,称之为字面量 常用的值类型 Python中常用的有6种值&#xff…

MyBatis 四大核心组件之 ResultSetHandler 源码解析

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

MyBatis动态SQL(Dynamic SQL)

Mybatis框架的动态SQL技术是一种根据特定条件动态拼装SQL语句的功能,它存在的意义是为了解决拼接SQL语句字符串时的痛点问题。 实际开发中可以通过以下几种标签进行动态SQL拼接。 1 if标签 根据test属性所对应的表达式计算结果决定标签中的内容是否拼接到sql中。 …

基于SpringBoot+JSP+Mysql宠物领养网站+协同过滤算法推荐宠物(Java毕业设计)

大家好,我是DeBug,很高兴你能来阅读!作为一名热爱编程的程序员,我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里,我将会结合实际项目经验,分享编程技巧、最佳实践以及解决问题的方法。无论你是…

《C++新经典设计模式》之第15章 适配器模式

《C新经典设计模式》之第15章 适配器模式 适配器模式.cpp 适配器模式.cpp #include <iostream> #include <vector> #include <string> #include <fstream> #include <memory> using namespace std;// 解决两个类之间的兼容性问题 // 转换接口调…

ffmpeg6.0之ffprobe.c源码分析二-核心功能源码分析

本篇我们继续分析: 1、ffprobe -show_packets 参数的处理流程;2、ffprobe -show_frames 参数的处理流程;3、ffprobe -show_streams 参数的处理流程;4、ffprobe -show_format 参数的处理流程; 因为前面的文章已经回顾了这些命令的使用,以及作用。本文就不在赘述,以免篇幅…

《妙趣横生的算法》(C语言实现)- 第5章 数学趣题(一)

《妙趣横生的算法》&#xff08;C语言实现&#xff09;-第5章 数学趣题&#xff08;一&#xff09; 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 例如&#xff1a;第一章 Python 机器学习入门之pandas的使用 提示&#xff1a;写完文…

“新华三杯”第十届成都信息工程大学ACM程序设计竞赛(同步赛)L. 怎么走啊(最短路+二分 分段函数)

题目 登录—专业IT笔试面试备考平台_牛客网 思路来源 衡阳师范学院ac代码、pj学弟 题解 大致可以证明&#xff0c;在w从1e5减小到1的过程中&#xff0c; 之前某条反向边没有用到&#xff0c;现在需要用到反向边&#xff0c;也就是正向边用到的变少了 这样的变化有sqrt个&a…

分层网络模型(OSI、TCP/IP)及对应的网络协议

OSI七层网络模型 OSI&#xff08;Open System Interconnect&#xff09;&#xff0c;即开放式系统互连参考模型&#xff0c; 一般都叫OSI参考模型&#xff0c;是ISO组织于1985年研究的网络互连模型。OSI是分层的体系结构&#xff0c;每一层是一个模块&#xff0c;用于完成某种功…

服务器GPU占用,kill -9 PID 用不了,解决办法

PID&#xff08;progress ID 进程ID&#xff09; 上图为占用情况&#xff0c;使用下面的指令都不管用 kill -9 PID kill -15 PID # 加入sudo 还是不行 # 等等网上的 chatgpt 提供的其他办法&#xff0c;一圈试了下来还是不管用最后解决办法 首先用下面的指令查看进程的树结构…

【Hexo】自动在中英文之间添加空格

本文首发于 ❄️慕雪的寒舍 如题&#xff0c;中英文添加空格是比较规范的写法&#xff0c; 但是我个人实在是懒&#xff0c;每次都要这么弄太累了。想找找hexo有没有对应的插件&#xff0c;还是有的 npm install hexo-filter-auto-spacing --save安装了之后&#xff0c;在hexo的…

〖大前端 - 基础入门三大核心之JS篇㊿〗- 面向对象之对象的方法、遍历、深浅克隆

说明&#xff1a;该文属于 大前端全栈架构白宝书专栏&#xff0c;目前阶段免费&#xff0c;如需要项目实战或者是体系化资源&#xff0c;文末名片加V&#xff01;作者&#xff1a;哈哥撩编程&#xff0c;十余年工作经验, 从事过全栈研发、产品经理等工作&#xff0c;目前在公司…

iOS使用CoreText完成txt阅读器

CoreText是一个高效处理字符和字形转换和进行文字排版的框架&#xff0c;API基于C语言。 常见的CoreText类介绍 &#xff08;1&#xff09;、CFAttributedStringRef 属性字符串&#xff0c;用于存储需要绘制的文字字符和字符属性 &#xff08;2&#xff09;、CTFramesetterR…