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
}
}
- 1000: A+B Problem(NetWork Flow)
- 博弈论进阶之Multi-SG
- 2929: [Poi1999]洞穴攀行
- SQL Server 执行计划缓存
- 1081: [SCOI2005]超级格雷码
- 1715: [Usaco2006 Dec]Wormholes 虫洞
- 博弈论入门之斐波那契博弈
- 3018: [Usaco2012 Nov]Distant Pastures
- 1755: [Usaco2005 qua]Bank Interest
- SQL Server 重新组织生成索引
- 3386/1752: [Usaco2004 Nov]Til the Cows Come Home 带奶牛回家
- 洛谷P2197 nim游戏(Nim游戏)
- SQL Server 索引和表体系结构(聚集索引+非聚集索引)
- 3384/1750: [Usaco2004 Nov]Apple Catching 接苹果
- 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 数组属性和方法
- Not allowed to navigate top frame to data URL问题
- MonoTouch绑定CocoaTouch类库
- NuGet 使用自定义本地类库目录
- Flutter/Dart中的异步编程之Isolate
- System.Net.Http for Silverlight
- 在SAP WebClient UI里混用ABAP Webdynpro,会带来哪些问题?
- 设计模式之中介者模式
- SAP WebClient UI创建Value help最详细的步骤
- 设计模式之迭代器模式
- 跨平台开发框架 MvvmCross 初体验
- 设计模式之解释器模式
- 设计模式之命令模式
- 设计模式之职责链模式
- iOS 静态类库项目的创建与使用
- 使用ABAP创建QR Code(二维码)