go语言快速入门:模板应用(13)

在go语言中,通过使用http包,可以非常简单快速地创建一个Web应用。同时使用template包,可以很方便的进行数据替换,如果结合CSS就已经能够进行简单的开发了。在接下来的几篇文章中,我们将通过几个例子来学习一下如何活用这些最基础的知识。

实例1

在上篇文章中,我们使用template,将替换后的信息输出到os.Stdout标准输出进行显示,在这个例子中,结合第一个web应用的例子,可以通过浏览器进行访问。

参考内容 URL
Web应用 http://blog.csdn.net/liumiaocn/article/details/54878953
模板实例 http://blog.csdn.net/liumiaocn/article/details/54882507

例子代码

查看代码可以看出,除了模板的Execute方法的输出目的地从os.Stdout到http.ResponseWriter的response,其他没有任何区别。

[root@liumiaocn goprj]# cat basic-web-hello2.go
package main

import "fmt"
import "net/http"
import "html/template"

func Hello(response http.ResponseWriter, request *http.Request) {
        type person struct {
                Id      int
                Name    string
                Country string
        }

        liumiaocn := person{Id: 1001, Name: "liumiaocn", Country: "China"}

        tmpl, err := template.ParseFiles("./user.tpl")
        if err != nil {
                fmt.Println("Error happened..")
        }
        tmpl.Execute(response, liumiaocn)
}

func main() {
        http.HandleFunc("/", Hello)
        http.ListenAndServe(":8080", nil)
}
[root@liumiaocn goprj]#

模板文件user.tpl内容

[root@liumiaocn goprj]# cat user.tpl
<html>
<head>
<title>Personal information</title>
</head>
<body style="text-align:center">
<h3>Person general infor</h3>
<hr>
<ul>
<li>Name: {{.Name}}<p>
<li>Id: {{.Id}} <p>
<li>Country: {{.Country}}
</ul>
<hr>
<h3>Hello, {{.Name}}  Welcome to go programming...</h3>
</body>
</html>
[root@liumiaocn goprj]#

执行结果

[root@liumiaocn goprj]# go run basic-web-hello2.go

画面确认

这里写图片描述

总结

在单页应用日益广泛,go语言这样通过及其简单和方便的方式提供面向Web应用开发的标准包,对Web相关知识没有系统学习的新手来说还是具有很大的吸引力的一门语言的。

展开阅读全文

Go语言Web开发书城项目教程(含配套资料)

11-26
Go是下一代的互联网开发语言; Go是下一代互联网时代的C语言; Go的并发如何如何高; Go的语言如何如何简洁; 国外某公司全部由NodeJS转向Go开发; 国外某公司从ruby转向go之后,服务器数量从20多台降到了2台; Go项目开发的优点 (1)开发体验好 go的编译速度极快,可以在保存完代码后直接刷新浏览器看效果,开发体验接近动态语言。 (2)Go很容易将错误定位到代码行上 除view模版之外,go很容易将错误定位到具体的行上,方便开发人员排错。 (3)语法相对简洁 确实相对来说,能省一些代码量。 (4)很容易部署 这个很容易部署是相对.NET、Java等这些编译型语言,因为go也是编译型的,它开发的程序,不用考虑依赖,直接会生成一个.exe文件,任何平台下都可以直接运行。这也是当时很吸引我的地方。 当然,go编译后的程序也相对较大。 (5)轻量级 相对Java来讲,Go语言比较轻量级,无论是IDE还是开发、部署,都不像Java那么笨重、复杂。 (6)相对严谨 在Go中,如果你导入了一个包,但是没有用,或你定义了一个变量,后面没有使用这个变量都会报错。 本套课程从GoWeb基础讲起,并配有实战案例,内容包含:Web简介、使用Go搭建服务器、使用Go对数据库进行增删改查、使用 Go处理请求和响应以及Go的模板引擎等。实战案例的功能模块包括:登录注册、图书的增删改查、分页、购物车、订单管理等。

Go语言入门到构建自己的区块链

02-10
区块链,是一个分布式的共享账本和数据库,具有去中心化、不可篡改、可追溯、公开透明等特点。区块链技术作为科技创新的代表和未来技术的发展方向,已经上升至国家战略高度。它将为解决信息不对称问题、创造信任与合作机制等提供丰富的应用空间,也会是未来我们技术自主创新、引领产业变革的重要突破口。 比特币被认为是区块链技术1.0版的应用,主要实现的是电子现金的分布式记账转账功能。而随着技术的不断发展更新,越来越多的人希望突破“账本”的限制,从而可以把这项未来技术应用在更广阔的领域。 以太坊(Ethereum)为代表的第二代区块链公链项目,就是其中的佼佼者。与比特币不同,以太坊的定位是一个“世界计算机”。以区块链作为底层存储技术,我们不仅可以记账转账,而且可以构建“智能合约”(smart contract)定义程序化的处理流程,进而实现区块链上运行的“去中心化应用”(DApp)。 以太坊项目自提出后就受到了广泛关注,快速发展和壮大,而且由于其“分布式应用平台”而非“分布式账本”的定位,越来越多的开发人员开始以以太坊为基础设施,在上面开发DApp。 随着更多开发人员的参与,和项目的逐步落地,以太坊已成为从事区块链学习和开发不可或缺的一个环节;既了解区块链底层原理、又熟悉以太坊架构、还能基于以太坊开发DApp的专业人才,也成为了各大公司发力区块链技术储备的重点对象。 01.Go语言核心技术 性能卓越的Go语言已被全球知名公司谷歌、亚马逊、阿里、京东等广泛用于区块链、云计算开发。当前互联网行业正向虚拟现实和人工智能时代迈进,对于Golang人才的需求越加紧迫。 本套Go语言经典教程,不仅系统讲解了Go语言核心技术,还深入剖析了Go语言编程思想和底层实现。通过系统全面的学习,让你快速掌握Go语言关键技术,具备真正的Golang开发经验,并为下一步学习区块链技术打下坚实基础。 02.GoWeb 本套课程从GoWeb基础讲起,并配有实战案例,内容包含:Web简介、使用Go搭建服务器、使用Go对数据库进行增删改查、使用 Go处理请求和响应以及Go的模板引擎等。 实战案例的功能模块包括:登录注册、图书的增删改查、分页、购物车、订单管理等。 03.区块链以太坊核心技术 本套课程对以太坊基础理论知识和架构做了系统的梳理和深入的阐述,并对solidity和DApp的开发做了系统讲解,另外还对以太坊白皮书、黄皮书做了介绍;为有志于学习区块链技术、了解以太坊底层架构和DApp开发原理的工程师提供学习平台和帮助。 教程内容分为五大部分:以太坊基础、以太坊原理和架构、以太坊编程及应用、合约工作流以及原理深入分析。 通过学习本套课程,可以使学习者对以太坊有充分的认识,对整个区块链技术有更深刻的理解,对区块链应用开发有更加整体的领悟。 04.区块链项目:投票系统 课程基于以太坊开发投票系统DApp,在基础投票功能的基础上,增加了基于自定义token进行投票的功能,另外还涉及到了以太坊开发框架truffle的使用。 通过一个完整的DApp的开发,将以太坊理论和实践紧密结合起来,可以使学习者对以太坊上的DApp开发有更加全面充分的认识,进而对整个区块链技术有更深刻的理解。 05.区块链项目:拍卖系统 课程基于以太坊开发拍卖系统DApp,拍卖的原理类似于eBay,所以又可以叫做“去中心化eBay”项目。课程对项目的整体架构、后台合约逻辑、前台页面设计和实现一一做了详细讲解。 由于需要将商品信息保存在区块链上,所以我们会引入另一个区块链项目IPFS作为基础设施,另由于链下产品的存取,还会涉及到MongoDB。所有涉及到的组件及其交互,我们都会进行专项讲解。 通过完整的拍卖平台DApp的开发,可以使学习者对以太坊上的DApp开发有更加全面充分的认识,也可以了解到区块链系统与其它组件的交互,进而更加深刻地理解项目架构,为将来成长为架构师打下基础。
©️2020 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值