go語言打造個人博客系統(一)


go語言打造個人博客系統(一)



為什么選擇go語言?

  聽說go語言是在幾年前,但真正深入了解他卻是在2017年,因為當時作為講師 ,需要准備go語言的課程,結果稍一接觸立刻就喜歡上這門語言了,作為長期的c/c++程序員來說,10年來參加了很多大型項目,用c來開發確實很苦逼,所以碰到go語言時,發現真的能夠上癮,新生的語言肯定會把作者對之前各種語言的痛點體現出來,尤其還是肯-湯普森這樣的大師。

go語言的優點很多:

  • 代碼很簡潔
  • 上手很容易
  • 內存自回收
  • 運行很高效
  • 開發效率高
  • 風格很統一
  • 出身自名門

  這或許就是很多人選擇go語言的原因吧,如果要做一個有后端的項目,相信go語言將成為很多程序員的首選吧。因為python,java等高級語言的優點,go都有,但是運行的效率更高。

為什么開發博客?

  博客在早些年是比較火的,現在大多數程序員都養成了寫博客的習慣。其實博客是一個非常典型的互聯網應用,其中所用的最基本技術正是網絡編程中使用到的,在開發過程中也可以了解到一些開發的細節,同時還有對時下比較火爆的頭條,抖音等產品有更深刻的了解。

開發需要准備什么?

  首選考慮數據存儲,寫好的博客需要存儲起來,那么首先要有個數據庫了,在這里我們選擇MongoDB數據庫,說到MongoDB,它的介紹很有意思,MongoDB是使用C++開發的一種分布式數據庫,它是非關系型數據庫中當中最像關系型的。使用MongoDB是因為它有一個document的概念,數據以文檔的形式存儲,當然也是key-value格式的。基於這樣我們需要安裝一個數據庫,在linux平台安裝非常簡單。

sudo apt-get install mongodb 

  數據庫的問題解決后,還要准備什么呢?可以動手了,剩下的就是在go語言里怎么寫http服務器了,在寫之前最好了解一下http協議,不然有些事情還是無法完全掌控。

go語言的數據庫操作

首先研究明白go語言當中如何操作MongoDB

  • gopkg.in/mgo.v2 安裝
go get -u gopkg.in/mgo.v2/bson
  • 連接到數據庫
type Mongo struct {
	Session *mgo.Session
}

func (m *Mongo) Connect(url string) {
	session, err := mgo.Dial(url)
	if err != nil {
		panic(err)
	}
	m.Session = session
}

文檔是MongoDB的核心構成,MongoDB編程基本上就是圍繞文檔進行增刪改查操作。

  • 構造文檔
    type Person struct {
    	Name string
    	Age  int
    }
    tabName := "person"
	ps := sess.DB("myblog").C(tabName)

文檔構造好之后,就可以基於這個文檔進行增刪改查操作了

  • 增加文檔
    增加一個人物信息,姓名和年齡
    //添加一個perso
	//func (c *Collection) Insert(docs ...interface{}) error
	err = ps.Insert(&Person{"yekai", 30})
	if err != nil {
		panic(err)
	}
  • 修改文檔
    //修改person
	//func (c *Collection) Update(selector interface{}, update interface{}) error
	err = ps.Update(bson.M{"name": "yekai"}, bson.M{"name": "yekai", "age": 35})
	if err != nil {
		panic(err)
	}
  • 刪除文檔
    //刪除全部紀錄
	//(c *Collection) RemoveAll(selector interface{}) (info *ChangeInfo, err error)
	ps.RemoveAll(bson.M{"name": "yekai"})
  • 查詢文檔
    查詢與其他接口略有區別在需要處理查詢結果集,這在go語言中同樣非常簡單。
    //查詢person
	p1 := Person{}
	//func (c *Collection) Find(query interface{}) *Query
	ps.Find(bson.M{"name": "yekai"}).One(&p1)
	fmt.Println(p1)   
  • 思路總結

mongodb編程都在一張圖了

  在了解了go語言的優點和go語言的數據庫操作后,我們就可以開始個人博客系統的開發了,下次我們將分享這部分的內容。


image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM