【go项目01_学习记录02】

学习记录

  • 1 新建项目
  • 2 自动重载
    • 安装air
    • 安装完成,查看版本:air -v
    • 使用air: air
  • 3 设置标头
  • 4 如何知道 http 包有哪些接口呢?
  • 5 Web 数据响应
  • 6 小结

1 新建项目

windows系统,cmd:

cd %GOPATH%/src //%GOPATH%表示取环境变量的路径

mkdir goblog / /注释创建goblog文件夹

cd goblog

code . //启动vscode

go mod init 是一个命令,用于初始化一个新的 Go 模块。该命令会在当前目录下创建一个新的 go.mod 文件,用于管理模块的依赖关系和版本信息。

go mod init

在这里插入图片描述

2 自动重载

安装air

windows 系统访问 github.com/cosmtrek/air/releases 此处下载后放入 Go 安装目录下的 bin 目录,重命名为 air.exe
在这里插入图片描述

在这里插入图片描述

安装完成,查看版本:air -v

在这里插入图片描述

使用air: air

在这里插入图片描述
此时浏览器访问 localhost:3000/ :

修改main.go文件,会被自动编译运行,刷新浏览器页面(省去手动重复go build,go run)
在这里插入图片描述
建新的命令行窗口
为了保持 air 窗口持续运行着,我们点击 + 按钮新建命令行窗口,并使用命令:

git status
在这里插入图片描述

从上图可以看到我们的根目录下多了一个 tmp 文件夹,这是 air 命令的编译文件存放地。我们需要设置版本控制器将其排除在外:.gitignore
在这里插入图片描述
再次执行 git status 即可看到 tmp 目录已被排除在外:
在这里插入图片描述

3 设置标头

访问其他网站
在这里插入图片描述
查看响应标头
在这里插入图片描述

浏览器访问localhost:3000 ,右键查看网络请求:
在这里插入图片描述
浏览器访问 localhost:3000/about,右键查看网络请求:
在这里插入图片描述
Content-Type 标头
在这里插入图片描述
修改标头中的Content-Type为text/html
在这里插入图片描述
在这里插入图片描述

4 如何知道 http 包有哪些接口呢?

本地查看 Go 文档

godoc -http =:6060 //执行这条指令

localhost:6060/pkg/ 进入标准库文档,定位到 net/http:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5 Web 数据响应

Web 的响应与请求结构是类似的,响应分为三个部分:响应行、响应头部、响应体。

响应行:协议、响应状态码和状态描述,如: HTTP/1.1 200 OK
响应标头:包含各种头部字段信息,如 cookie,Content-Type 等头部信息。
响应体:携带客户端想要的数据,格式与编码由头部的 Content-Type 决定。

响应状态码的有固定取值和意义:

100~199:表示服务端成功接收客户端请求,要求客户端继续提交下一次请求才能完成整个处理过程。
200~299:表示服务端成功接收请求并已完成整个处理过程。最常用就是:200
300~399:为完成请求,客户端需进一步细化请求。比较常用的如:客户端请求的资源已经移动一个新地址使用 302 表示将资源重定向,客户端请求的资源未发生改变,使用 304,告诉客户端从本地缓存中获取。
400~499:客户端的请求有错误,如:404 表示你请求的资源在 web 服务器中找不到,403 表示服务器拒绝客户端的访问,一般是权限不够。
500~599:服务器端出现错误,最常用的是:500

在 http 包中我们是通过与 http.ResponseWriter 交互来改变响应内容的,要添加的 HTTP 状态码的话,我们先访问 ResponseWriter 的文档 localhost:6060/pkg/net/http/#Respon… :

提示: 本地文档访问请运行命令 godoc -http=:6060 。
在这里插入图片描述
页面按快捷键 Ctrl+F 搜索关键词 StatusOK,即可定位到设置状态码的常量:
在这里插入图片描述
选中我们的 404 状态码,在代码中添加:StatusNotFound 404
顺便访问一个不存在的页面:
在这里插入图片描述

6 小结

学到了以下知识点:

  1. 如何创建 go 项目;
  2. 如何使用 VSCode 的内置命令行;
  3. 如何使用 go run 命令来运行 Go 程序;
  4. 如何使用 git 做版本控制;
  5. Go 应用中 package main 的规则;
  6. 标准库 fmt 包的基本使用;
  7. 标准库 http 包的基本使用;
  8. http 包中如何通过 url 路径来处理业务逻辑;
  9. 如何使用 air 来自动重载代码;
  10. 如何使用 go proxy 来加速 go get 命令;
  11. 如何添加 http 标头;
  12. 如何在不需要联网的情况下查看 Go 文档;
  13. 如何在 Go 文档中快速定位所需内容。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一套C语言VC + MSSQL开发PACS系统源码 带三维重建和还原的PACS医学影像全套系统源码

一套C语言VC MSSQL开发PACS系统源码 带三维重建和还原的PACS医学影像全套系统源码 本套PACS系统成品源码,自主版权。集成三维影像后处理功能,包括三维多平面重建、三维容积重建、三维表面重建、三维虚拟内窥镜、最大/小密度投影、心脏动脉钙化分析等功…

如何将jsp项目转成springboot项目

昨天说过,springboot推荐使用Thymeleaf作为前后端渲染的模板引擎,为什么推荐用Thymeleaf呢,有以下几个原因: 动静结合:Thymeleaf支持HTML原型,允许在HTML标签中增加额外的属性来实现模板与数据的结合。这样…

【投稿资讯】区块链会议CCF C -- CoopIS 2024 截止7.10 附录用率

会议名称:CoopIS CCF等级:CCF C类学术会议 类别:人机交互与普适计算 录用率:2023年接收率21% (21 regular 10 work-in-progress papers/100) AREA 5: HUMAN-CENTRIC SECURITY AND PRIVACY IN INFORMATION SYSTEMS Access Con…

编程入门(六)【Linux系统基础操作四】

读者大大们好呀!!!☀️☀️☀️ 🔥 欢迎来到我的博客 👀期待大大的关注哦❗️❗️❗️ 🚀欢迎收看我的主页文章➡️寻至善的主页 文章目录 🔥前言🚀if else条件控制基本的if语句带else的if语句嵌…

一文了解队列

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、队列是什么?二、队列的实现三、功能函数的实现1.节点定义2.队列初始化3.队列销毁4.队列尾插5.队列头删6.返回队头数据7.返回队尾数据8.返回队列…

电脑那些可以升级的基本配置

一. 中央处理器(CPU):(若不是焊点的可以升级) 1、一句话简介: 这是电脑的心脏,决定了电脑的处理能力。常见的品牌有Intel和AMD。 2、换CPU指南: 1) 处理器品牌: - 主要…

mybatis-plus代码

项目结构 config package com.example.mpdemo.config;import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerIntercept…

FPGA串口屏方案

FPGA串口屏方案 客户应用:应用于工业自动化、智能家电、交通轨道、数据机房、充电桩、电力医疗、国防安全、共享设备等显示领域 主要功能: 1.支持几十种食材工作模式 2.支持存储自定义工作模式 3.支持延时工作 4.支持保温工作 5.支持压强模式/温度模…

统信UOS 1070如何制作GHOST镜像并安装到其他设备

原文链接:统信UOS 1070制作GHOST镜像并安装到其他设备 Hello,大家好啊!对于想要快速部署多台计算机或在硬件更换后恢复系统的用户来说,制作一个GHOST镜像是一种非常高效的方法。今天,我将介绍如何在统信UOS 1070桌面操…

边缘网关畅维通达EN6400使用测评

1. 引言 在当前快速发展的工业4.0时代,边缘计算已经成为了一个关键技术,它能够使数据处理更加接近数据源头,从而提高处理速度并降低响应时间。这一技术尤其在工业自动化领域显示出了极大的潜力,因为它能有效处理大量来自工业设备…

简单数据结构——栈和队列1(栈超全)(初始化,销毁,出栈入栈销毁实现,例题运用)

知识特点 类似数据表链表,在逻辑上依次存储,但对比顺序表和链表有所限制,不能随便存储 一定要先掌握顺序表的实现,本人博客有顺序表专栏大家可以自行查看,看懂顺序表专栏之后再来了解栈的实现会更容易懂。 如果还没…

Xilinx FPGA底层逻辑资源简介(1):关于LC,CLB,SLICE,LUT,FF的概念

LC:Logic Cell 逻辑单元 Logic Cell是Xilinx定义的一种标准,用于定义不同系列器件的大小。对于7系列芯片,通常在名字中就已经体现了LC的大小,在UG474中原话为: 对于7a75t芯片,LC的大小为75K,6输…

LangChain:简化大模型应用

LangChain 框架提供了常见用例的抽象,简化了大型语言模型(LLM)(如 OpenAI GPT4 或 Google PaLM)的应用。它支持 JavaScript 和 Python。 为了弄清楚为什么需要 LangChain,我们先来看下 LLM 的工作原理。 …

ctfshow-web入门-102

这个题我想记录一下,主要是这个方法属实是有点惊艳到我了。故而进行记录,也为了方便大家阅读理解。 看题目,根据题目我写一下我的分析: $_POST传入一个v1,$_GET传入一个v2,一个v3。 赋值符号 优先级高于…

echarts双Y轴,并实现图例等

一个Y轴时yAxis为对象 yAxis: {type: value,name: 占比(%) },两个Y轴时yAxis为数组 yAxis: [{ // 左侧的type: value,name: 占比(%),nameTextStyle: {padding: [0, 0, 10, -50]},min: 0,max: 100,splitNumber: this.splitNumber, // 设置坐标轴的分割段数interval: 20, // 标轴…

【牛客】Tokitsukaze and Average of Substring

原题链接:登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 前缀和。 开一个int类型的前缀和数组pre[30][N](pre[i][j]表示某字符转成的数字 i 在一段区间的前缀个数。因为字母表有‘a’~z…

并发编程实现

一、并行编程 1、Parallel 类 Parallel类是System.Threading.Tasks命名空间中的一个重要类,它提供数据并行和任务并行的高级抽象。 For和ForEach Parallel类下的For和ForEach对应着普通的循环和遍历(普通的for和foreach),但执行时会尝试在多个线程上…

Blender修改器

修改器 Modifier,对模型进行修改,相当于一个函数。 修改器图标是界面右下角的扳手样式 每个修改器的顶部都有如下样式,从左到右分别为:展开/折叠,修改器类型,修改器名称,编辑模式按钮&#xff…

游戏辅助 -- 某游戏一键端配置

游戏一键端下载地址及安装视频: https://pan.quark.cn/s/e6a373d94707 ​https://pan.quark.cn/s/ef7ab0c48776 准备工作 Vmware虚拟机软件:用于创建和管理虚拟机。 SecureCRT:一款支持SSH的终端仿真程序,用于远程登陆服务器…

SoC系统中AXI4 AXI3兼容性及exclusive access

AXI4和AXI3是高级扩展接口(Advanced eXtensible Interface)的两个不同版本,它们都是用于SoC(System on Chip)设计中的总线协议,用于处理器和其它外设之间的高速数据传输。以下是它们之间的一些主要区别&…