go實戰web入門學習筆記

努力的Charlie發表於2021-06-19

學習,動手實戰,寫作這是最有效的學習方式。買了這個課程,願能節省時間,讓我快速入門,然後進軍程式設計世界的廣闊而深邃的大海。

開發環境

國產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 協議》,轉載必須註明作者和本文連結

相關文章