go实战web入门学习笔记

Golang
344
0
0
2022-04-28

学习,动手实战,写作这是最有效的学习方式。买了这个课程,愿能节省时间,让我快速入门,然后进军编程世界的广阔而深邃的大海。

开发环境

国产linux发行版本deepin,用go mod代替传统的gopath:

首先要开启 GO111MODULE,go mod这是go1.11之后官方新发布的特性,你的项目目录千万不要建立在GOPATH/src下面,go mod 和 GOPATH是冲突的。

go version # 查看go的版本  > go env  # 查看当前go的环境  > go env -w GO111MODULE=on # 开启go mod  > go env -w GOPROXY=https://goproxy.io,direct # 配置走代理

在你的项目目录,直接go mod init projectname 即可,记住go.sum不是锁文件,go.sum是一个构建状态跟踪文件。它会记录当前module所有的顶层和间接依赖,以及这些依赖的校验和,从而提供一个可以100%复现的构建过程并对构建对象提供安全性的保证。

一个简单的web程序

,作者在这个教程没有教会你怎样使用web框架,go的web框架只是net/http包上包装了一层。go 没有类似Spring,Django这种重量级框架,也没有类似php这各种功能大而全的框架。一切都会引入官方和各种开源包.从最语言最底层的http包搭建一个web系统是最有价值的。

如果你的网络不畅可以通过下面命令快速查看一个本地web的官网文档

godoc -http=:6060 -play

直接贴上一段代码:

package main

import ("fmt""net/http")

func handlerFunc(w http.ResponseWriter, r *http.Request) {// 设置头部返回类型
  w.Header().Set("Content-Type","text/html;charset=utf-8")if r.URL.Path == "/" {
      fmt.Fprint(w,"<h1>这是博客首页</h1>")}else if r.URL.Path == "/about"{
      fmt.Fprint(w,"这是关于我们")}else{

      w.WriteHeader(http.StatusNotFound)// 设置头部404状态码
  fmt.Fprint(w, "<h1>请求页面未找到404:(</h1>"+"<p>如有疑惑,请联系我们。</p>")}
}

func main() {
   http.HandleFunc("/", handlerFunc)
   http.ListenAndServe(":3000", nil)
}

我们用命令go run main.go 或者go build main.go ./main 即可

注意一个命令:go install和go build的区别

安装编译后的结果文件到指定目录库源码包对应的 .a 文件会被放置到 pkg 目录下,命令源码包生成的可执行文件会被放到 GOBIN 目录,至于还不清楚库源码和命令源码的自己看下教程

每次改完就go run main.go 好累 go get -u github.com/cosmtrek/air 安装air 即可

一个air命令会不断的监听你的任何更高