GO语言学习:动态Web
时间:2022-05-04
本文章向大家介绍GO语言学习:动态Web,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
使用Golang中的模板template来实现在HTML中动态Web.
1.网络端口监听操作:
Web动态页面要使用http.HandleFunc()而不是http.Handle()
主函数实现代码如下:
func main() {
http.HandleFunc("/info", infoHandler)
err := http.ListenAndServe(":9090", nil)
if err != nil {
log.Fatal("ListenAndServe: ", err.Error())
}
}
2. 模板template的使用:
首先要做HTML中插入字段供Golang使用。Golang的模板通过{{.}}来包含渲染时被替换的字段,{{.}}表示当前的对象,这个和java或者C++中的this类似,如果要访问当前对象的字段通过{{.data}},但是需要注意一点:这个字段必须是导出的(字段字母必须是大写的),否则在渲染的时候会报错。
golang实例代码:
<span style="font-size:12px;">type Infromation struct{
Name string
}</span>
HTML代码:
switch.html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Switch</title>
</head>
<body>
<h1>name is: {{.Name}}</h1>
<form method="post" action="/info">
<p>Switch Key:<input type="submit" name="switch" value="switch" /></p>
</form>
</body>
</html>
3. 对页面进行响应、
首先生成模板
func ParseFiles(filenames ...string) (*Template, error)
然后填入字段并实现模板
func (t *Template) Execute(wr io.Writer, data interface{}) error
在函数中第二个参数data填入要实现的字段。
相关代码如下
func infoHandler(w http.ResponseWriter, r *http.Request) {
info := new(Infromation)
if r.Method == "GET" {
info.Name = "A"
t, err := template.ParseFiles("switch.html")
if err != nil {
http.Error(w, err.Error(),http.StatusInternalServerError)
return
}
t.Execute(w, info)
return
}
if r.Method == "POST" {
fmt.Println("click")
info.Name = "B"
t, err := template.ParseFiles("switch.html")
if err != nil {
http.Error(w, err.Error(),http.StatusInternalServerError)
return
}
t.Execute(w, info)
return
}
}
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 虚拟文件系统
- Convolution_model_Step_by_Step_v2a
- 进程间通信 - 共享内存
- Redis数据淘汰算法
- 无损失放大低分辨率图片
- Linux内存页分配策略
- socket接口层分析
- 数据存储方式——JSON、CSV、MongoDB、Redis、MySQL
- Spring Boot引入swagger-ui 后swagger-ui.html无法访问404
- 多路复用IO内幕
- Linux信号处理
- Shopify主题title/description等SEO设置
- Golang实现守护进程
- LaTeX简单常用方法笔记
- Convolution_model_Application_v1a