bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

go語言寫web服務 go實現web前端

如何用go創建一個webservice

http包建立Web服務器

成都創新互聯致力于互聯網品牌建設與網絡營銷,包括成都網站制作、網站設計、SEO優化、網絡推廣、整站優化營銷策劃推廣、電子商務、移動互聯網營銷等。成都創新互聯為不同類型的客戶提供良好的互聯網應用定制及解決方案,成都創新互聯核心團隊十余年專注互聯網開發,積累了豐富的網站經驗,為廣大企業客戶提供一站式企業網站建設服務,在網站建設行業內樹立了良好口碑。

package main

import (

"fmt"

"net/http"

"strings"

"log"

)

func sayhelloName(w http.ResponseWriter, r *http.Request) {

r.ParseForm() //解析參數,默認是不會解析的

fmt.Println(r.Form) //這些信息是輸出到服務器端的打印信息

fmt.Println("path", r.URL.Path)

fmt.Println("scheme", r.URL.Scheme)

fmt.Println(r.Form["url_long"])

for k, v := range r.Form {

fmt.Println("key:", k)

fmt.Println("val:", strings.Join(v, ""))

}

fmt.Fprintf(w, "Hello astaxie!") //這個寫入到w的是輸出到客戶端的

}

func main() {

http.HandleFunc("/", sayhelloName) //設置訪問的路由

err := http.ListenAndServe(":9090", nil) //設置監聽的端口

if err != nil {

log.Fatal("ListenAndServe: ", err)

}

}

上面這個代碼,我們build之后,然后執行web.exe,這個時候其實已經在9090端口監聽http鏈接請求了。

在瀏覽器輸入

可以看到瀏覽器頁面輸出了Hello astaxie!

可以換一個地址試試:

看看瀏覽器輸出的是什么,服務器輸出的是什么?

在服務器端輸出的信息如下:

圖3.8 用戶訪問Web之后服務器端打印的信息

我們看到上面的代碼,要編寫一個Web服務器很簡單,只要調用http包的兩個函數就可以了。

如果你以前是PHP程序員,那你也許就會問,我們的nginx、apache服務器不需要嗎?go就是不需要這些,因為他直接就監聽tcp端口了,做了nginx做的事情,然后sayhelloName這個其實就是我們寫的邏輯函數了,跟php里面的控制層(controller)函數類似。

如果你以前是Python程序員,那么你一定聽說過tornado,這個代碼和他是不是很像,對,沒錯,Go就是擁有類似python這樣動態語言的特性,寫Web應用很方便。

如果你以前是Ruby程序員,會發現和ROR的/script/server啟動有點類似。

golang原生http web進行簡約封裝

一般我們用Golang原生寫Web時,一般這樣寫

如果需要特定的GET,POST,PUT,DELETE處理. 我們需要這樣寫.

對以上方法操作進行了封裝.

不過最后還是推薦使用httprouter, 大名頂頂的Gin Web框架就是使用這個的. 自己寫的,純屬學習.

想寫個web服務器,用Go語言實現,需要有哪些前提知識

Web服務器也是一個應用程序,這個應用程序打開了TCP的80端口,通過HTTP協議和瀏覽器交互。 Python和Go有非常成熟的類庫,可以用很短的程序來實現一個Web服務器的功能(打開80端口通過HTTP協議與瀏覽器交互)。

81.go + vue實現web應用程序

前端框架越來越豐富,前后端分離已經是大多數軟件團隊采取的模式了。vue使用的場景也越來越多。

go本來使用template模板來進行前端的表現,現在可以用vue來分擔很大一部分工作了。

通常直接使用go語言寫后端,然后使用靜態模板加載渲染前端,前端獲取后端提供的數據是使用{{ }}符號,2個套在一起的花括號。這個也是vue使用的數據表現方式。

如果go+vue來協同工作的話,需要對vue進行一點設置。比如把{{ }}的方式改為[[ ]]的方式。

首先我們要知道,vue的使用,需要在頁面中加載vue.js或vue.min.js

純靜態網頁使用vue是這樣的(給個html例子)

然后我們實現一個go的簡單web服務和模板頁面

這個go服務器通過端口 1989 展示服務器頁面,提供了一個靜態文件路徑 htmlpage,我們把vue.js和index.html文件都放置在htmlpage路徑里。

go服務器還用模板給前臺頁面提供了一個News結構的數據,數據包括:Title,Content,Author的值。

在index.html頁面中,加載vue.js的時候需要帶上靜態路徑 htmlpage

在 new 一個 vue 變量的時候,必須有一句來設置包裹數據的符號,我們這里設置這個符號為[[ ]]

同時,所有需要由 vue 渲染的數據,都寫成類似這樣的樣子

在 go + vue 方式下的完整模板文件 index.html

此頁面中{{ }}包裹的數據是由go從后端提供的數據( 例如:{{.Title}}),而[[ ]]包裹的數據,是vue渲染的數據。

只是把 Vue里的數據,改為由go后端提供即可。

好吧,作者已經在向月亮示愛了。呵呵 _

運行一下程序,看修改模板后的效果。

大家覺得用Go做WEB有必要用框架嗎

第一個:Beego框架

Beego框架是astaxie的GOWeb開發的開源框架。Beego框架最大的特點是由八個大的基礎模塊組成,八大基礎模塊的特點是可以根據自己的需要進行引入,模塊相互獨立,模塊之間耦合性低。

相應的Beego的缺點就是全部使用時比較臃腫,通過bee工具來構建項目時,直接生成項目目錄和耦合關系,從而會導致在項目開發過程中受制性較大。

第二個:Gin框架

Gin是一個GOlang的微框架,封裝比較優雅,API友好,源碼注釋比較明確,已經發布了1.0版本;具有快速靈活、容錯方便等特點,其實對于golang而言,web框架的依賴遠比Python、Java更小。

目前在很多使用golang的中小型公司中進行業務開發,使用Gin框架的很多,大家如果想使用golang進行熟練Web開發,可以多關注一下這個框架。

第三個:Iris框架

Iris框架在其官方網站上被描述為GO開發中最快的Web框架,并給出了多框架和多語言之前的性能對比。目前在github上,Iris框架已經收獲了14433個star和1493個fork,可見是非常受歡迎的。

在實際開發中,Iris框架與Gin框架的學習曲線幾乎相同,所以掌握了Gin就可以輕松掌握Iris框架。

第四個:Echo框架

也是golang的微型Web框架,其具備快速HTTP路由器、支持擴展中間件,同時還支持靜態文件服務、Websocket以及支持制定綁定函數,制定相應渲染函數,并允許使用任意的HTML模版引擎。

當前題目:go語言寫web服務 go實現web前端
URL分享:http://vcdvsql.cn/article0/hhppio.html

成都網站建設公司_創新互聯,為您提供網站設計公司、定制開發響應式網站、網站營銷、面包屑導航網站改版

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網頁設計公司