目录

第一节-家族的屈辱

第二节-初见go语言

第三节-初识gin框架

 GET请求

​编辑

 POST请求

 PUT请求

DELETE请求

第四节-template的初识

main函数代码

html代码

效果展示 

 第五节-总结



LOGO

在这个设计中,引入了一只更加优雅的绿色蜥蜴(Gopher),它身披金色斗篷,手持象征权力与智慧的权杖,矗立在云雾缭绕的山巅之上。其身后,一轮光芒万丈的太阳正从地平线升起,不仅象征着新的开始和无限可能,也代表了追求卓越的精神。整体画面采用了冷色调,营造出一种神秘而高贵的氛围,与“成神之路”的主题相得益彰。 

第一节-家族的屈辱

        经过深思熟虑,我决定走上修行Go语言的道路。在我六岁那年,我已经完成了“筑基”的圆满,这在我们这个世界里意味着打下了修炼的坚实基础。然而,正当我的人生似乎即将步入辉煌之时,一场由家族内部的大长老所策划的阴谋彻底颠覆了我的生活。由于他的嫉妒与野心,我从众人眼中的天才变成了一个所谓的“废材”,而我的父亲也因为这场阴谋失去了族长的地位。这样的转变对我来说是巨大的打击,但我并没有因此而沉沦。

第二节-初见go语言

        面对逆境,我选择了不同的道路来证明自己的价值——学习Go语言。这是一门现代的编程语言,它能帮助人们解决复杂的问题,创造无限的可能性。我意识到,通过掌握Go语言,我可以开辟一条不同于传统修炼的道路,利用技术的力量实现个人的成长和发展,甚至为家族的复兴贡献一份力量。

package main

import (
	"fmt"
	"net/http"
)

func sayHello(w http.ResponseWriter, r *http.Request) {
	_, _ = fmt.Fprintln(w, "hello go")
}
func main() {
	http.HandleFunc("/hello", sayHello)
	err := http.ListenAndServe(":1205", nil)
	if err != nil {
		fmt.Printf("start server failed,err:%v\n", err)
		return
	}
}

        这条新道路上充满了挑战,比如技术上的难题、资源的获取等。但我也知道,这些困难其实是成长的机会。我从基础学起,逐渐深入理解Go语言的核心概念,比如并发编程、内存管理等。我还积极参与开源项目和社区活动,这样不仅能提升我的技术水平,还能结识志同道合的朋友,一起探索技术的边界。

 

因为上述代码中端口号修改为了1205,所以可以通过localhost:1025/hello来进行访问。 

        三十年的时间很长,但对于一个有着坚定意志和明确目标的人来说,这只是通向成功的旅程的一部分。我始终相信,“三十功名尘与土,八千里路云和月”。无论过去经历了多少风雨,只要心中有梦想,脚下就有前进的道路。通过不懈的努力,我不仅能够掌握一门强大的工具——Go语言,还能在这过程中找回失去的一切,甚至赢得更加广阔的未来。 

package main

import (
	"fmt"
	"net/http"
)

// sayHello 是一个HTTP处理函数,用于响应/hello路由的请求。
// 参数:
//   w: http.ResponseWriter 类型,用于向客户端发送响应。
//   r: *http.Request 类型,包含了请求的所有信息。
func sayHello(w http.ResponseWriter, r *http.Request) {
	_, _ = fmt.Fprintln(w, "hello go") // 向客户端输出 "hello go"
}

// main 函数是程序的入口点。
func main() {
	// 为 "/hello" 路由注册处理函数 sayHello。
	http.HandleFunc("/hello", sayHello)

	// 在端口 1205 上启动 HTTP 服务器。
	err := http.ListenAndServe(":1205", nil)
	
	// 如果启动服务器失败,打印错误信息并退出程序。
	if err != nil {
		fmt.Printf("start server failed,err:%v\n", err)
		return
	}
}

第三节-初识gin框架

Gin 是一个用 Go (Golang) 编写的 web 框架,它以其高性能和简洁的 API 而闻名。Gin 构建于标准库 net/http 之上,通过提供中间件支持、路由管理和错误处理等功能,简化了 Web 应用程序的开发过程。

package main

import "github.com/gin-gonic/gin"

// sayHello2 是一个HTTP处理函数,用于响应特定路由的请求。
// 参数:
//   c: *gin.Context 类型,包含了请求和响应的所有信息。
func sayHello2(c *gin.Context) {
	c.JSON(200, gin.H{ // 向客户端返回 JSON 响应,状态码为 200,消息为 "Hello go!!!"
		"message": "Hello go!!!",
	})
}

// main 函数是程序的入口点。
func main() {
	r := gin.Default() // 创建一个默认的 Gin 引擎实例。

	// 为 "/book" 路由注册 GET 请求处理函数。
	r.GET("/book", func(c *gin.Context) {
		c.JSON(200, gin.H{ // 向客户端返回 JSON 响应,状态码为 200,消息为 "GET"
			"message": "GET",
		})
	})

	// 为 "/book" 路由注册 POST 请求处理函数。
	r.POST("/book", func(c *gin.Context) {
		c.JSON(200, gin.H{ // 向客户端返回 JSON 响应,状态码为 200,消息为 "POST"
			"message": "POST",
		})
	})

	// 为 "/book" 路由注册 PUT 请求处理函数。
	r.PUT("/book", func(c *gin.Context) {
		c.JSON(200, gin.H{ // 向客户端返回 JSON 响应,状态码为 200,消息为 "PUT"
			"message": "PUT",
		})
	})

	// 为 "/book" 路由注册 DELETE 请求处理函数。
	r.DELETE("/book", func(c *gin.Context) {
		c.JSON(200, gin.H{ // 向客户端返回 JSON 响应,状态码为 200,消息为 "DELETE"
			"message": "DELETE",
		})
	})

	// 在端口 1205 上启动 HTTP 服务器。
	r.Run(":1205")
}

 GET请求

 POST请求

 PUT请求

DELETE请求

 这里用到的接口测试工具是PostMan

请求的时候后端也会给出相应的反馈。 

第四节-template的初识

在 Go 语言中,text/templatehtml/template 包提供了模板处理的功能。这两个包非常相似,但 html/template 包提供了额外的安全性措施,防止 XSS(跨站脚本攻击)。

模板文件包含文本和动作(actions),其中动作是用于插入数据或执行控制流程的指令。模板文件通常以 .tmpl.html 为扩展名。

main函数代码

package main

import (
	"fmt"
	"html/template"
	"net/http"
)

// sayHello3 是一个HTTP处理函数,用于响应根路径 "/" 的请求。
// 参数:
//
//	w: http.ResponseWriter 类型,用于向客户端发送响应。
//	r: *http.Request 类型,包含了请求的所有信息。
func sayHello3(w http.ResponseWriter, r *http.Request) {
	// 解析 HTML 模板文件 "./hello.html"。
	t, err := template.ParseFiles("./hello.html")
	if err != nil {
		fmt.Printf("parse template failed, err:%v\n", err) // 如果解析模板失败,打印错误信息并返回。
		return
	}

	// 使用解析后的模板输出响应,传递字符串 "VON" 作为数据。
	err = t.Execute(w, "VON")
	if err != nil {
		fmt.Printf("render template failed, err:%v\n", err) // 如果渲染模板失败,打印错误信息并返回。
		return
	}
}

// main 函数是程序的入口点。
func main() {
	// 为根路径 "/" 注册处理函数 sayHello3。
	http.HandleFunc("/", sayHello3)

	// 在端口 1205 上启动 HTTP 服务器。
	err := http.ListenAndServe(":1205", nil)
	if err != nil {
		fmt.Printf("start http server failed, err:%v\n", err) // 如果启动服务器失败,打印错误信息并退出程序。
		return
	}
}

html代码

<!-- 1. 构建模版 -->
<!-- 这是一个简单的 HTML 模板文件,用于生成动态内容。 -->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <!-- 使用 Go 模板语法 {{ . }} 来插入传递给模板的数据。 -->
    <p>Hello {{ . }}</p>
</body>
</html>

效果展示 

 第五节-总结

       当有一天我站在成功的顶峰,回首过去的坎坷与挫折,它们将成为通向辉煌未来的垫脚石。我希望在这条不平凡的道路上保持初心,勇敢前行,用实际行动书写属于自己的传奇故事。我坚信,通过自己的努力,终将夺回属于我们的一切。

Logo

一起探索未来云端世界的核心,云原生技术专区带您领略创新、高效和可扩展的云计算解决方案,引领您在数字化时代的成功之路。

更多推荐