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

news2024/11/17 1:50:29

学习记录

  • 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 文档中快速定位所需内容。

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

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

相关文章

【模型的量化 神经网络量化】对称量化与非对称量化 无符号数量化 有符号数量化

文章目录 量化方法1.非对称量化1.1 无符号量化(uint8)1.2 有符号量化(int8)1.3 代码1.4总结 2 对称量化2.1 无符号量化(uint8)2.2 有符号量化(uint8)2.3总结2.4 程序代码 减少模型大小:通过将模型的权重和激活值从浮点…

从抖音阳哥的经验看,选品师项目是否值得你投入?

在抖音这个短视频平台上,无数的创作者分享着他们的知识和经验,其中阳哥作为一个备受关注的博主,他的每一次分享都能引起广大网友的热烈讨论。最近,阳哥分享了一个名为“选品师”的项目,让许多对电商和抖音运营感兴趣的…

SpringCloud2024最新版链路追踪教程micrometer+zipkin

本文基于B站尚硅谷2024版springcloud教学视频,主要用于自己学习记录以及分享技术,侵权私删 自己本机环境信息: jdk:17.0.10springboot:3.2.0springcloud:2023.0.0 micrometer 之前行业内使用的分布式链路…

【yolov8 项目打包】pyinstaller 打包pyQt5 界面为exe

创建一篇博客文章,介绍如何使用PyInstaller将PyQt5界面打包为exe文件,并且处理与YOLOv8模型相关的文件,可以按照以下结构进行: 标题:使用PyInstaller将PyQt5界面与YOLOv8模型打包为Windows可执行文件 引言 在机器学习…

自建WSUS更新服务器完成内网的安全补丁更新

一、适用场景 1、企业内部网络无法访问外网,所以搭建WSUS服务器,可以让内网环境进行更新补丁。 2、校园内部的电脑实训室一般不用外网资源,偶尔开启外网使用时,电脑实训室集体自动更新占用外网资源量大,所以搭建WSUS服…

Mendix创客访谈录|助力工业领域,Mendix与IIOT相融合

本期创客 汤登揆 太平洋电信股份有限公司 AI 技术支持工程师 大家好,我是汤登揆,帝国理工大学,生态算法专业,主要关注于产品结构分析和产品应用落地。 目前任职于太平洋电信股份有限公司,主要专注于AI大模型的应用落地…

路由的基本

目录 一、VueRouter介绍 二、VueRouter的使用 三、注意 一、VueRouter介绍 VueRouter是Vue官方的一个路由插件,是一个第三方包。 作用:修改地址栏路径时,切换显示匹配的组件 官网:Vue Router (vuejs.org) 二、VueRouter的使用 注意&am…

ABUMN_公司内资产转移

ABUMN_公司内资产转移 一、功能介绍 使用事务码ABUMN进行公司内资产转移 二、程序代码 程序代码: *&---------------------------------------------------------------------* *& Report ZFIR218 *&---------------------------------------------…

如何确保UDP文件传输工具有最低稳定的传输速度?

在当前日新月异的数字时代背景下,文件传输工具已经成为我们日常生活与工作中不可或缺的一部分,尤其针对那些频繁涉及即时数据交互与多媒体流通的场景。 UDP协议,以其突出的高速传输与低延迟特性,脱颖而出成为众多用户的首选。不过…

通过自适应提示提升大语言模型的零样本推理能力

随着大模型(LLMs)的快速发展,它们在自然语言处理(NLP)任务上取得了前所未有的成就。特别是,LLMs展现出了强大的推理和规划能力,这得益于它们的少样本和零样本学习能力。然而,现有的方…

校验--ECC详细分析

ECC介绍 ECC 以下是针对瑞萨MCU的应用的ECC检测的详细分析。 当前公认安全有效的三大类公钥密钥体制分别为基于大数因子分解难题(RSA)、离散对数难题(DSA)和椭圆曲线离散对数(ECC)难题的密码体制。 保证RSA的安全性,则必须要增加密钥长度…

影响视频视觉质量的因素——各类视觉伪影

模糊效应(Blurring Artifact) 图像模糊(blurring):平滑图像的细节和边缘产生的现象,模糊对于图像来说,是一个低通滤波器(low-pass filter)。一般而言,用户更…

Layer1 公链竞争破局者:Sui 生态的全面创新之路

随着 Sui 生态逐渐在全球范围内树立起声望,并通过与 Revolut 等前沿金融科技平台合作,推广区块链教育与应用,Sui 生态的未来发展方向已成为业界瞩目的焦点。如今,Sui 的总锁定价值已攀升至 5.93 亿美元,充分展示了其在…

python如何整体缩进

python自带编辑器的缩进和取消缩进快捷键: 整体缩进 Ctrl【 整体取消缩进 Ctrl】 pycharm编辑器的缩进和取消缩进快捷键: 整体缩进: tab 整体取消缩进: tabshift

【ZIP技巧】ZIP分卷压缩包如何解压?

经过压缩的文件仍然过大,大家可能都会选择“分卷压缩”来压缩ZIP文件,但是当我们将压缩包分卷之后,解压的时候该如何解压?今天我们分享两个ZIP分卷压缩包如何解压的方法给大家。 一、 我们可以直接点击第一个分卷压缩包&#xf…

USB系列四:USB数据传输类型(重要)

本章包括知识点如下,也是学习USB比较重要的一部分。 USB的块传输方式 USB的中断传输方式 USB的同步传输方式 USB的控制传输方式 USB3.0与USB2.0数据传输对比 USB总线技术协议具有极大的灵活性,可以针对不同的应用场合需求来采用最适合的…

分布式链路追踪工具Sky walking详解

1,为什么要使用分布式链路追踪工具 随着分布式系统和微服务架构的出现,且伴随着用户量的增加,项目的体量变得十分庞大,一次用户请求会经过多个系统,不同服务之间调用关系十分复杂,一旦一个系统出现错误都可…

逆向中webpack需要补充的模块很多怎么办

如下面这种典型的形式 进入i找到加载器 找到加载器所在函数r,在 return e[a].call(c.exports, c, c.exports, r),打上断点。 在控制台打印e,会发现它总共有的模块,这些模块需要我们在别的webpack中复制,有时很多,很麻烦。 我们可以注入代码在…

性能优化的核心思路,纯干货分享!

前言 平时技术交流的时候,很多同学都会问一些性能优化方面的问题。 比如: 有一张订单表为了保持订单记录,更新数据时不能删除,需要打算加上版本号,查询时取版本号最新的给前端,还有场景是查询订单历史给前…

AI日报|Stack Overflow和OpenAI达成合作,Apple正在为数据中心开发人工智能芯片...

欢迎大家在 GitHub 上 Star 我们: 分布式全链路因果学习系统 OpenASCE: https://github.com/Open-All-Scale-Causal-Engine/OpenASCE 大模型驱动的知识图谱 OpenSPG: https://github.com/OpenSPG/openspg 大规模图学习系统 OpenAGL: https://github.com/TuGraph-…