Working with Design Patterns in Go (Golang)

ops/2024/10/20 15:59:55/

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 mainimport ("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为例


http://www.ppmy.cn/ops/22164.html

相关文章

k8s Dashboard 运维维护记录

k8s Dashboard 运维维护记录 k8s Dashboard 运维维护记录 Q1&#xff1a;需要使用firefox浏览器访问 提示了证书错误NET::ERR_CERT_INVALID&#xff0c;原因是由于物理机的浏览器证书不可用 需要注意的是&#xff0c;若提示“连接不安全”的警告时&#xff0c;点击“高级”…

CMUS狮身人面像(六)-调整语音识别准确性

调整语音识别准确性 精度差的原因测试数据库设置运行测试 语音识别的准确性并不总是很高。 首先&#xff0c;重要的是要了解您的准确性是否只是低于预期&#xff0c;还是总体上非常低。如果总体精度非常低&#xff0c;则您很可能错误配置了解码器。如果低于预期&#xff0c;可…

开源相机管理库Aravis例程学习(五)——camera-api

开源相机管理库Aravis例程学习&#xff08;五&#xff09;——camera-api 简介例程代码函数说明arv_camera_get_regionarv_camera_get_pixel_format_as_stringarv_camera_get_pixel_formatARV_PIXEL_FORMAT_BIT_PER_PIXEL 简介 本文针对官方例程中的&#xff1a;03-camera-api…

社交到底是什么?

社交的核心&#xff1a;感受世界而非自我展示 社交常常被误解为一个自我展示的舞台&#xff0c;然而&#xff0c;真正的社交远比这更深刻。它不是关于我们如何展示自己的优势&#xff0c;而是关于我们如何与世界建立联系&#xff0c;了解和探索他人。本文将探讨社交的真正意义…

白话机器学习1:分类问题中的评价指标

机器学习中的评价指标非常多&#xff0c;它们用来衡量模型的性能和预测能力。不同类型的机器学习任务可能需要不同的评价指标。以下是一些常见的评价指标&#xff0c;按照不同类型的机器学习任务分类&#xff1a; 对于分类问题&#xff1a; 准确率&#xff08;Accuracy&#…

用Jenkins实现cherry-pick多个未入库的gerrit编译Android固件

背景: 在做Android固件开发的时候,通常我们可以利用gerrit-trigger插件,开发者提交一笔的时候自动触发jenkins编译,如果提交的这一笔的编译依赖其他gerrit才能编译过,我们可以在commit message中加入特殊字段,让jenkins在编译此笔patch的时候同时抓取依赖的gerrit代码下…

求解素数-埃氏筛选

什么是素数了?就是除了0和1之外,一个数只能由1和它本身相乘得来,这就是素数 第一种暴力求解: package com.fan.suanfati;import java.util.Scanner;public class SuShu {public static void main(String[] args) {System.out.println("请输入数字,以便求出该数字内的素数…

Django初步了解

目录 一、什么是Django 二、Django的设计模式 三、涉及的英文缩写及其含义 四、安装&#xff08;官方教程&#xff09; 一、什么是Django Django是一个Python Web框架&#xff0c;可以快速开发网站&#xff0c;提供一站式的解决方案&#xff0c;包括缓存、数据库ORM、后台…