0


go语言的成神之路-筑基篇-第一章

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>

效果展示

第五节-总结

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

本文转载自: https://blog.csdn.net/2302_80329073/article/details/143997909
版权归原作者 ●VON 所有, 如有侵权,请联系我们删除。

“go语言的成神之路-筑基篇-第一章”的评论:

还没有评论