go实战web入门学习笔记

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

开发环境

国产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命令会不断的监听你的任何更高

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!