0


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

LOGO

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

第一节-家族的屈辱

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

第二节-初见go语言

  1. 面对逆境,我选择了不同的道路来证明自己的价值——学习Go语言。这是一门现代的编程语言,它能帮助人们解决复杂的问题,创造无限的可能性。我意识到,通过掌握Go语言,我可以开辟一条不同于传统修炼的道路,利用技术的力量实现个人的成长和发展,甚至为家族的复兴贡献一份力量。
  1. package main
  2. import (
  3. "fmt"
  4. "net/http"
  5. )
  6. func sayHello(w http.ResponseWriter, r *http.Request) {
  7. _, _ = fmt.Fprintln(w, "hello go")
  8. }
  9. func main() {
  10. http.HandleFunc("/hello", sayHello)
  11. err := http.ListenAndServe(":1205", nil)
  12. if err != nil {
  13. fmt.Printf("start server failed,err:%v\n", err)
  14. return
  15. }
  16. }
  1. 这条新道路上充满了挑战,比如技术上的难题、资源的获取等。但我也知道,这些困难其实是成长的机会。我从基础学起,逐渐深入理解Go语言的核心概念,比如并发编程、内存管理等。我还积极参与开源项目和社区活动,这样不仅能提升我的技术水平,还能结识志同道合的朋友,一起探索技术的边界。

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

  1. 三十年的时间很长,但对于一个有着坚定意志和明确目标的人来说,这只是通向成功的旅程的一部分。我始终相信,“三十功名尘与土,八千里路云和月”。无论过去经历了多少风雨,只要心中有梦想,脚下就有前进的道路。通过不懈的努力,我不仅能够掌握一门强大的工具——Go语言,还能在这过程中找回失去的一切,甚至赢得更加广阔的未来。
  1. package main
  2. import (
  3. "fmt"
  4. "net/http"
  5. )
  6. // sayHello 是一个HTTP处理函数,用于响应/hello路由的请求。
  7. // 参数:
  8. // w: http.ResponseWriter 类型,用于向客户端发送响应。
  9. // r: *http.Request 类型,包含了请求的所有信息。
  10. func sayHello(w http.ResponseWriter, r *http.Request) {
  11. _, _ = fmt.Fprintln(w, "hello go") // 向客户端输出 "hello go"
  12. }
  13. // main 函数是程序的入口点。
  14. func main() {
  15. // 为 "/hello" 路由注册处理函数 sayHello。
  16. http.HandleFunc("/hello", sayHello)
  17. // 在端口 1205 上启动 HTTP 服务器。
  18. err := http.ListenAndServe(":1205", nil)
  19. // 如果启动服务器失败,打印错误信息并退出程序。
  20. if err != nil {
  21. fmt.Printf("start server failed,err:%v\n", err)
  22. return
  23. }
  24. }

第三节-初识gin框架

Gin 是一个用 Go (Golang) 编写的 web 框架,它以其高性能和简洁的 API 而闻名。Gin 构建于标准库

  1. net/http

之上,通过提供中间件支持、路由管理和错误处理等功能,简化了 Web 应用程序的开发过程。

  1. package main
  2. import "github.com/gin-gonic/gin"
  3. // sayHello2 是一个HTTP处理函数,用于响应特定路由的请求。
  4. // 参数:
  5. // c: *gin.Context 类型,包含了请求和响应的所有信息。
  6. func sayHello2(c *gin.Context) {
  7. c.JSON(200, gin.H{ // 向客户端返回 JSON 响应,状态码为 200,消息为 "Hello go!!!"
  8. "message": "Hello go!!!",
  9. })
  10. }
  11. // main 函数是程序的入口点。
  12. func main() {
  13. r := gin.Default() // 创建一个默认的 Gin 引擎实例。
  14. // 为 "/book" 路由注册 GET 请求处理函数。
  15. r.GET("/book", func(c *gin.Context) {
  16. c.JSON(200, gin.H{ // 向客户端返回 JSON 响应,状态码为 200,消息为 "GET"
  17. "message": "GET",
  18. })
  19. })
  20. // 为 "/book" 路由注册 POST 请求处理函数。
  21. r.POST("/book", func(c *gin.Context) {
  22. c.JSON(200, gin.H{ // 向客户端返回 JSON 响应,状态码为 200,消息为 "POST"
  23. "message": "POST",
  24. })
  25. })
  26. // 为 "/book" 路由注册 PUT 请求处理函数。
  27. r.PUT("/book", func(c *gin.Context) {
  28. c.JSON(200, gin.H{ // 向客户端返回 JSON 响应,状态码为 200,消息为 "PUT"
  29. "message": "PUT",
  30. })
  31. })
  32. // 为 "/book" 路由注册 DELETE 请求处理函数。
  33. r.DELETE("/book", func(c *gin.Context) {
  34. c.JSON(200, gin.H{ // 向客户端返回 JSON 响应,状态码为 200,消息为 "DELETE"
  35. "message": "DELETE",
  36. })
  37. })
  38. // 在端口 1205 上启动 HTTP 服务器。
  39. r.Run(":1205")
  40. }

GET请求

POST请求

PUT请求

DELETE请求

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

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

第四节-template的初识

在 Go 语言中,

  1. text/template

  1. html/template

包提供了模板处理的功能。这两个包非常相似,但

  1. html/template

包提供了额外的安全性措施,防止 XSS(跨站脚本攻击)。

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

  1. .tmpl

  1. .html

为扩展名。

main函数代码

  1. package main
  2. import (
  3. "fmt"
  4. "html/template"
  5. "net/http"
  6. )
  7. // sayHello3 是一个HTTP处理函数,用于响应根路径 "/" 的请求。
  8. // 参数:
  9. //
  10. // w: http.ResponseWriter 类型,用于向客户端发送响应。
  11. // r: *http.Request 类型,包含了请求的所有信息。
  12. func sayHello3(w http.ResponseWriter, r *http.Request) {
  13. // 解析 HTML 模板文件 "./hello.html"。
  14. t, err := template.ParseFiles("./hello.html")
  15. if err != nil {
  16. fmt.Printf("parse template failed, err:%v\n", err) // 如果解析模板失败,打印错误信息并返回。
  17. return
  18. }
  19. // 使用解析后的模板输出响应,传递字符串 "VON" 作为数据。
  20. err = t.Execute(w, "VON")
  21. if err != nil {
  22. fmt.Printf("render template failed, err:%v\n", err) // 如果渲染模板失败,打印错误信息并返回。
  23. return
  24. }
  25. }
  26. // main 函数是程序的入口点。
  27. func main() {
  28. // 为根路径 "/" 注册处理函数 sayHello3。
  29. http.HandleFunc("/", sayHello3)
  30. // 在端口 1205 上启动 HTTP 服务器。
  31. err := http.ListenAndServe(":1205", nil)
  32. if err != nil {
  33. fmt.Printf("start http server failed, err:%v\n", err) // 如果启动服务器失败,打印错误信息并退出程序。
  34. return
  35. }
  36. }

html代码

  1. <!-- 1. 构建模版 -->
  2. <!-- 这是一个简单的 HTML 模板文件,用于生成动态内容。 -->
  3. <!DOCTYPE html>
  4. <html lang="en">
  5. <head>
  6. <meta charset="UTF-8">
  7. <title>Title</title>
  8. </head>
  9. <body>
  10. <!-- 使用 Go 模板语法 {{ . }} 来插入传递给模板的数据。 -->
  11. <p>Hello {{ . }}</p>
  12. </body>
  13. </html>

效果展示

第五节-总结

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

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

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

还没有评论