• 【码神之路】【Golang】博客网站的搭建【学习笔记整理 持续更新...】


    介绍

    一个用原生GO开发的博客网站,涉及Golang Web开发Web服务器搭建HTTP请求处理、模板与静态资源处理等

    技术栈

        后端:Go、Go并发机制
    	前端:HTML模版
    
    • 1
    • 2

    链接直达

    Golang搭建博客网站的学习视频
    网页首页
    文章详细页
    注:这里我只记录我实质✅学习到的知识点,对于一些抄抄写写的内容我就不过多赘述。

    一、环境部署

    1、设置下载Go模块的代理

    为了提高获取Go模块的可靠性和速度,设置Go模块的中国代理服务器https://goproxy.cn ,如图:
    设置go模块的代理

    2、使用GO的template包解析HTML模版,生成动态页面

    在这里插入图片描述

    解析

    在这里插入图片描述

    3、index.html文件分析在这里插入图片描述

    注:理解model数据结构、HTML模版渲染、go.mod Go模块文件
    go.mod是Go模块文件,便于管理版本和外部依赖
    
    • 1
    • 2

    二、静态资源加载

    思路

    • 在main文件设置路由和对应的handlerFunc()处理函数
    • 操作view包和api包,用定义好的数据结构来渲染页面

    1、总结各种的ERR处理

    1. panic(err)
    2. log.Println(“解析模版出错”,err)

    2、

    三、配置数据库

    思路

    • 使用GO的database/sql包 驱动 数据库,配置数据库参数
    • 首页真实数据处理
      1. 分类查询:SQL数据库查询,再映射到Go结构中
      2. 文章查询:SQL实现分页查询逻辑
    • 分类文章:根据分类ID查询对应文章

    1、GO的database/sql标准库连接数据库

    2、定义go结构体,使用ORM框架 映射 数据库数据

    3、实现分页查询和数据组装的业务逻辑

    4、视图层 分页逻辑

    四、实现登录功能

    思路

    • GO 渲染HTML模版,定义处理HTTP请求的函数,实现登录功能
    • 创建数据模型(UserUserInfo:用户登录信息),通过生成JWT实现用户认证
    • 定义 显示文章详情的视图函数(从HTTP请求中获取文章ID,并进行查询)

    1、特定URL

    2、与数据库交互

    3、加密和安全

    使用MD5对密码进行加密处理,使用JWT进行用户会话管理

    4、JSON处理

    解析(生成)JSON格式响应体(请求体)

    5、 服务层逻辑

    实现用户登录和文章详情获取的业务逻辑

    五、实现文章写作功能

    思路:

    • 使用GO渲染HTML模版实现编辑文章的页面;
    • 定义文章结构体,实现文章发布和编辑的接口,包括身份验证、文章CRUD处理 以及数据库交互;(JWT身份验证、GO数据库包)
    • 使用七牛云存储服务以及其提供的**软件开发工具包(SDK)**来实现图片上传功能;(七牛云存储、SDK集成、Token生成)

    1、写作页面

    2、文章发布和编辑

    3、图片上传

    六、实现归档搜索功能

    注:归档:按照特定的时间顺序展示文章
    
    • 1

    思路:

    • 定义归档路由,Go模版生成文章归档的页面,后端部分:获取所有的文章,按照日期顺序分类整理
    • 自定义功能:允许用户根据slug实现自定义url来访问特定页面
      注:比如https://www.baicao.com/posts/a1 中,a1就是一个slug
      *定义搜索路由,后端实现(据关键词搜索文章标题)查询文章的逻辑

    1、定义HTTP路由(归档和搜索)

    2、使用GO模版生成HTML页面

    3、数据库交互

    使用SQL查询来从数据库中检索文章数据,支持条件查询和全文搜索

    4、数据处理

    后端实现数据处理的逻辑,如文章的按月分类、搜索结果的生成。

    七、优化工作

    思路

    • 数据库优化查询:
    • 服务启动优化:
    • 获取参数优化

    1、

    2、

  • 相关阅读:
    设计模式——责任链模式(Chain of Responsibility Pattern)+ Spring相关源码
    难的不是今年,自学软件测试1个半月,上岸拿5个offer
    2023南昌航空大学考研介绍
    uniapp使用阿里图标显示查找文件失败,在H5端图标显示正常但是在移动端不显示图标的问题解决,uniapp中如何使用阿里巴巴图标库
    手把手教你君正X2000开发板的OpenHarmony环境搭建
    MySQL函数
    mesos+marathon平台搭建
    2022 ICPC Gran Premio de Mexico 1ra Fecha (B、D、E、F)
    sqli-labs less9详解
    Java Nacos与Gateway的使用
  • 原文地址:https://blog.csdn.net/weixin_67225910/article/details/134458826