GoWeb学习-第二天

文章目录

  • [从零开始学Go web------第二天](#从零开始学Go web——第二天)
    • 一、安装Go语言
    • 二、建立web目录
      • [2.1 创建GO语言包目录](#2.1 创建GO语言包目录)
      • [2.2 创建Go web文件](#2.2 创建Go web文件)
    • [三、编译并运行Go web应用](#三、编译并运行Go web应用)
      • [3.1 编译并运行](#3.1 编译并运行)
      • [3.2 查看结果](#3.2 查看结果)

从零开始学Go web------第二天

​ 第一天我们了解了与web息息相关的HTTP协议,聊了聊Go与web的关系等,接下来让我们一起写一个实战的GO语言web例子,体会Go实现web的简便性!

一、安装Go语言

具体的安装方法可以参考官方的教程:https://go.dev/doc/install

二、建立web目录

2.1 创建GO语言包目录

sh 复制代码
pzs@pzs-VirtualBox:~/go_study$ mkdir -p $HOME/go_study/firstwebapp
pzs@pzs-VirtualBox:~/go_study/firstwebapp$ go mod init github.com/pzs/firstwebapp
go: creating new go.mod: module github.com/pzs/firstwebapp
go: to add module requirements and sums:
        go mod tidy

2.2 创建Go web文件

sh 复制代码
pzs@pzs-VirtualBox:~/go_study/firstwebapp$ touch server.go 

​ web文件server.go内容如下所示:

go 复制代码
package main // 声明程序所属的包, pcakge后面的就是包名。Go语言要求可执行程序必须位于main包中

import (
	"fmt"
	"net/http" // HTTP
)

// 从Request结构中提取相关信息,创建一个HTTP响应,之后通过ResponseWriter接口写入到客户端
func handler(writer http.ResponseWriter, request *http.Request) {
	fmt.Fprintf(writer, "Hello world %s", request.URL.Path[1:])
}

func main() {
	// handler为事件处理的回调函数
	http.HandleFunc("/", handler)
	// 开启服务端监听端口
	http.ListenAndServe(":8083", nil)
}

三、编译并运行Go web应用

​ Go语言与其它语言不同的是,web应用的运行环境由net/http直接提供,包和应用源代码会被一起编译为一个可以快速部署的独立环境,而不需要依赖其它应用服务器。

3.1 编译并运行

sh 复制代码
pzs@pzs-VirtualBox:~/go_study/firstwebapp$ go build server.go #编译Go语言程序,生成的可执行程序
pzs@pzs-VirtualBox:~/go_study/firstwebapp$ ./server # 执行Go语言可执行程序

3.2 查看结果

​ 在浏览器内输入: http://127.0.0.1:8083/myfirstwebapp,即可查看到结果。

​ 到此,我们就成功地创建了一个属于自己的第一个Go web程序!

相关推荐
嵌入式仿真实验教学平台14 分钟前
「国产嵌入式仿真平台:高精度虚实融合如何终结Proteus时代?」——从教学实验到低空经济,揭秘新一代AI赋能的产业级教学工具
人工智能·学习·proteus·无人机·低空经济·嵌入式仿真·实验教学
Cxzzzzzzzzzz1 小时前
Kafka Go客户端--Sarama
中间件·golang·kafka·linq
moxiaoran57531 小时前
uni-app学习笔记五-vue3响应式基础
笔记·学习·uni-app
说码解字2 小时前
ExoPlayer 如何实现音画同步
开发语言·学习·音视频
海尔辛2 小时前
学习黑客BitLocker与TPM详解
stm32·单片机·学习
川川籽2 小时前
hashicorp/raft模块实现的raft集群存在节点跨集群身份冲突问题
golang·go-raft
邓永豪3 小时前
笔记本电脑升级实战手册[3]:扩展内存与硬盘
学习·电脑·硬件·diy·3c硬件
小虎卫远程打卡app3 小时前
视频编解码学习十一之视频原始数据
学习·视频编解码
Asus.Blogs4 小时前
为什么 import _ “github.com/go-sql-driver/mysql“ 要导入但不使用?_ 是什么意思?
sql·golang·github
crazyme_65 小时前
前端自学入门:HTML 基础详解与学习路线指引
前端·学习·html