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

Go入门:gin框架极速搭建图书管理系统

Go入门:gin框架极速搭建图书管理系统

前言

本项目适合 Golang 初学者,通过简单的项目实践来加深对 Golang 的基本语法和 Web 开发的理解。
项目源码请私信,欢迎前往博主博客torna.top免费查看。

项目结构

D:.
├─ go.mod
├─ go.sum
│  
├─ cmd
│  └─ main
│      └─ main.go
│
└─ pkg├─ config│      └─ app.go│├─ controllers│      └─ book-controller.go│├─ models│      └─ book.go│└─ routes└─ bookstore-routes.go

项目流程图

  1. 技术栈

技术栈

  1. 项目结构

在这里插入图片描述

  1. 项目路由

在这里插入图片描述

项目初始化

  1. 初始化项目文件夹
mkdir go-bookstore
cd go-bookstore
  1. 初始化 mod 文件
cd go-bookstore
go mod init github.com/your_username/go-bookstore

注意,此处的 your_username 请替换为你的 GitHub 用户名

  1. 安装依赖包
# GORM 是一个用于 Go 的 ORM(对象关系映射)库,可以简化与数据库的交互。
go get "github.com/jinzhu/gorm"
# 这个包提供了与 MySQL 数据库的连接和操作功能,使得可以使用 GORM 进行 MySQL 数据库的 CRUD 操作。
go get "github.com/jinzhu/gorm/dialects/mysql"
# gin 是一个 Go 语言的 Web 框架,它可以快速搭建 Web 服务。
go get "github.com/go-gonic/gin"# 打开 VSCode 编辑器
code .
  1. 创建 go-bookstore 数据库

打开 Mysql 客户端,输入以下命令创建 go-bookstore 数据库:

CREATE DATABASE `database_name` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

其中,database_name 请替换为你自己喜欢的数据库名称。

  1. 初始化项目结构

一行代码在项目根目录下创建目录和空文件

# windows系统
mkdir cmd\main pkg\config pkg\controllers pkg\models pkg\routes & type nul > cmd\main\main.go & type nul > pkg\config\app.go & type nul > pkg\controllers\book-controller.go & type nul > pkg\models\book.go & type nul > pkg

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MySQL:复合查询
  • 深度学习(二)
  • minio最新源码编译(处理安全扫描中跨域访问、.js.map等不安全问题)
  • SQLite3 数据类型深入全面讲解
  • 【PyQt】切换界面的实现
  • day-45 全排列 II
  • 【机器学习】循环神经网络(RNN)介绍
  • MySQL集群技术4——MySQL路由
  • 【大模型】Reflextion解读
  • P01-何谓Java方法
  • Nginx: 使用KeepAlived配置实现虚IP在多服务器节点漂移及Nginx高可用原理
  • macos 10.15 Catalina 可用docker最新版本 Docker Desktop 4.15.0 (93002) 下载地址与安装方法
  • 视觉辅助应用场景
  • JAVA:文字写入图片、图片插入图片
  • 在Java中,获取输入内容可以通过多种方式实现,以下是三种常用的方式:Scanner、BufferedReader 和 Console 的具体代码示例
  • 「面试题」如何实现一个圣杯布局?
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • Android框架之Volley
  • Apache的80端口被占用以及访问时报错403
  • go语言学习初探(一)
  • HashMap ConcurrentHashMap
  • iOS 系统授权开发
  • JavaScript设计模式之工厂模式
  • Python学习笔记 字符串拼接
  • 半理解系列--Promise的进化史
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 高度不固定时垂直居中
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 解析带emoji和链接的聊天系统消息
  • 模型微调
  • 使用putty远程连接linux
  • 探索 JS 中的模块化
  • 中文输入法与React文本输入框的问题与解决方案
  • AI算硅基生命吗,为什么?
  • ​数据结构之初始二叉树(3)
  • #FPGA(基础知识)
  • #HarmonyOS:Web组件的使用
  • #stm32驱动外设模块总结w5500模块
  • #在 README.md 中生成项目目录结构
  • $.each()与$(selector).each()
  • (1)Jupyter Notebook 下载及安装
  • (1)SpringCloud 整合Python
  • (4.10~4.16)
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (函数)颠倒字符串顺序(C语言)
  • (九)信息融合方式简介
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (转)Unity3DUnity3D在android下调试
  • (轉貼) UML中文FAQ (OO) (UML)
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • ****三次握手和四次挥手
  • .gitignore文件---让git自动忽略指定文件
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET 动态调用WebService + WSE + UsernameToken
  • .NET/C# 项目如何优雅地设置条件编译符号?