2、Go Web 编程 - 一切从 Hello World 开始
hi,我是温新,一名 PHPer
还记得初学 PHP 的时候,从 Hello World
开始。即使到了 Go,我们还是从它的开始吧。
Web 开发初体验
目录创建
Linux 中,我使用的是非 root 用户。因此在创建目录时,就需要在你有权限的地方创建目录了。
你可以在任意位置创建你的 go-web
开发目录,以下是我的开发位置。
mkdir /home/www-go/blog/1
cd /home/www-go/blog/1
创建控制器
在 blog/1
目录中创建一个 main.go
文件,它是程序入口文件。我们可以把这个文件当做是控制器来看看,下面就开始编写程序了。
main.go
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, request *http.Request) {
w.Write([]byte("Hello World"))
})
err := http.ListenAndServe(":8888", nil)
if err != nil {
fmt.Println("HTTP 服务启动失败:", err)
}
}
一个简单的 Hello World
Web 应用就完成了。菜已经准备好了,该把它送出去了。
go run main.go
执行该命令后,会发现终端被阻塞了,而且没有任何信息出现。如果你也是这种情况,那么恭喜你,你已经成功地启动了这个服务了。
命令执行后,没有消息,就是最好的消息。一旦有信息出现,那么大概率意味着程序出错了。
既然程序已经启动了,那么就在浏览器中访问这它吧。
// 这两种方式都可以访问
http://localhost:8888/
http://127.0.0.1:8888/
一切顺利的话,你应该在浏览器中看到 Hello World
。恭喜你,已经完成了简单的 Web 开发了。
main.go
已经充当控制器了,没有视图,浏览器是怎么显示内容的?全靠 w.Write()
函数了。
关于模板下篇文章再讲。本文到这里就结束了。下面的内容仅作复习使用。
回顾 net/http
func HandleFunc(pattern string, handler func(ResponseWriter, *Request))
func ListenAndServe(addr string, handler Handler) error
-
HandleFunc
接受一个字符串类型的模式(pattern)和一个处理函数(handler)。 -
ListenAndServe
接受一个地址字符串(addr)和一个处理器(handler)。
内容输出有三种方法,大家可以试试:
// 方式一
w.Write([]byte("Hello World"))
// 方式二
fmt.Fprintf(w, "Hello World")
// 方式三
io.WriteString(w, "Hello World")io.WriteString(w, "Hello World")
请登录后再评论