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/template
和
html/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>
效果展示
第五节-总结
当有一天我站在成功的顶峰,回首过去的坎坷与挫折,它们将成为通向辉煌未来的垫脚石。我希望在这条不平凡的道路上保持初心,勇敢前行,用实际行动书写属于自己的传奇故事。我坚信,通过自己的努力,终将夺回属于我们的一切。
版权归原作者 ●VON 所有, 如有侵权,请联系我们删除。