使用Go实现一个简单的Web页面 | 青训营

95 阅读2分钟

第一步

使用Goland创建一个项目

微信图片_20230811154009.png

第二步

新建一个main.go

微信图片_20230811154221.png

微信图片_20230811154549.png

微信图片_20230811154745.png

第三步

main.go中写入以下代码

微信图片_20230811155524.png

package main

import (
    "fmt"
    "net/http"
)

func webHelloWorld(w http.ResponseWriter, r *http.Request) {
    _, _ = fmt.Fprintln(w, "Hello World!")
}

func main() {
    http.HandleFunc("/hello", webHelloWorld)
    //指定监听的端口号为9090,如果这一个参数不填,则默认为8080
    err := http.ListenAndServe(":9090", nil)
    if err != nil {
       fmt.Printf("http serve failed, err:%v\n", err)
       return
    }
}

第四步

编译,输入go build

微信图片_20230811155708.png 编译完成后可以看到这里多出了一个可执行文件(Windows下为.exe

微信图片_20230811155831.png 运行,输入.\可执行文件名

微信图片_20230811160101.png

第五步

打开浏览器,输入127.0.0.1:9090/hell0

微信图片_20230811160325.png OK,大功告成

扩展

可能有眼睛不好的小伙伴会觉得输出的文字太小了,那我们应该如何告诉浏览器,让他把字体放大一些呢?我们知道:跟人说话要讲人话,跟狗说话要讲狗话,那么跟浏览器说话应该说什么话呢?答:“浏览器话”呗(手动狗头),这可不是咱们抖机灵哦,浏览器确实有一套他们看得懂的语言,不信咱们试试。 我们对之前的代码做一些修改。

微信图片_20230811162336.png 我们在之前的Hello World前后分别加上了<h1></h1>,我们再来看看效果,因为对代码进行了修改,所有这里我们需要重新执行go build进行编译一下,再次运行。

微信图片_20230811162710.png 刷新一下刚才的页面,我们可以看到确实发生了变化,因为我们使用了浏览器能够看得懂的规则告诉了他,所以浏览器能够理解我们的意思并且照做了。这一套“浏览器话”就叫HTML,当然这只是其中的九牛一毛,感兴趣的小伙伴可以自行了解。

微信图片_20230811162812.png

可能有聪明的小伙伴已经发现了一个问题,如果一个网页的内容很多,那我们总不可能把所有的内容都写在这一条代码里面吧,确实是这样的,所以我们这里有了另外一种写法。

我们在这里新建一个叫hello.txt的文件。

微信图片_20230811164019.png

微信图片_20230811164139.png 把我们要发给浏览器的话放到这里面来。

微信图片_20230811164335.png 然后我们对原来的代码稍作修改。我们让之前双引号部分的内容用一个变量来进行代替,这个变量通过Go自带的文件读取库函数来进行读取。

微信图片_20230811164607.png

//原先的代码
func webHelloWorld(w http.ResponseWriter, r *http.Request) {
    _, _ = fmt.Fprintln(w, "<h1>Hello World!</h1>")
}
//修改后的代码
func webHelloWorld(w http.ResponseWriter, r *http.Request) {
    b, _ := ioutil.ReadFile("./hello.txt")
    _, _ = fmt.Fprintln(w, string(b))
}

我们再来编译运行一下我们的代码,再次打开浏览器输入127.0.0.1/hello,我们将得到相同的效果。

微信图片_20230811162812.png OK,这样我们就解决了告诉浏览器的话太长的问题。当然,这仅仅是一种最简单的解决方案,并不是最好的解决方案,剩下的就留给小伙伴自行探索吧。