introduction:
1、go及GoLand的下载安装:
安装包下载地址为:https://golang.org/dl/
推荐使用国内地址:Go下载 - Go语言中文网 - Golang中文社区
2、Docker
Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像
Docker应用运行在容器中,使用沙箱机制,相互隔离
Setting up a Simple Web Application:
1、What we'll build in WORKING WITH DESIGN PATTERNS this section
学习如何使用设计模式来构建一个简单的 Web 应用程序。设计模式是解决特定问题的可重用解决方案,有助于我们编写更灵活、可维护和可扩展的代码。
2、How web applications work
Web 应用程序的工作原理涉及客户端和服务器之间的交互。客户端发送请求,服务器接收并处理请求,然后返回响应给客户端。这种交互通常是通过 HTTP 协议完成的。
3、Setting up our main application
在设置主应用程序时,我们将初始化基本的 Go 项目结构,并创建一个入口文件来启动我们的 Web 应用程序。
在设置主应用程序时,将初始化基本的 Go 项目结构,并创建一个入口文件来启动我们的 Web 应用程序。
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
fmt.Println("Starting the web server...")
http.HandleFunc("/", homeHandler)
log.Fatal(http.ListenAndServe(":8080", nil))
}
func homeHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, World!")
}
4、Installing a routing package
安装 Gorilla Mux 路由包。它提供了强大且灵活的路由功能,可以帮助我们定义和处理 URL 路由。
go get -u github.com/gorilla/mux
5、Setting up routes
使用 Gorilla Mux 路由包来定义不同 URL 路由的处理程序。这样,当客户端发送请求时,我们的应用程序可以根据请求的 URL 路径执行相应的操作。
router := mux.NewRouter()
router.HandleFunc("/", homeHandler).Methods("GET")
6、Setting up a simple HTML template
创建一个简单的 HTML 模板,用于呈现我们的网页内容。HTML 模板通常包含网页的结构、样式和基本内容。
<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Simple Web Application</title>
</head>
<body>
<h1>Welcome to our Simple Web Application</h1>
</body>
</html>
7、Creating a render function
编写一个函数来渲染 HTML 模板并将其发送到客户端。这个函数将负责将数据填充到 HTML 模板中,并将最终的网页内容返回给客户端。
func renderTemplate(w http.ResponseWriter, tmpl string, data interface{}) {
t, err := template.ParseFiles(tmpl)
if err != nil {
log.Println("Error parsing template:", err)
http.Error(w, "Internal server error", http.StatusInternalServerError)
return
}
err = t.Execute(w, data)
if err != nil {
log.Println("Error executing template:", err)
http.Error(w, "Internal server error", http.StatusInternalServerError)
}
}
8、Rendering our first page
使用渲染函数来呈现我们的第一个网页。这个页面将是我们应用程序的首页,通过调用渲染函数将 HTML 模板填充并发送给客户端。
func homeHandler(w http.ResponseWriter, r *http.Request) {
renderTemplate(w, "index.html", nil)
}
9、Adding navigation
为网站添加导航链接,使用户能够浏览不同的页面。导航链接通常放置在网页的顶部或底部,以提供方便的导航功能。
举个例子
10、Creating templates for all site pages
为网站的所有页面创建相应的 HTML 模板。每个页面的模板将包含特定页面的内容和布局。
以setReveiver.html为例