• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

在云平台上基于Go语言+Google图表API提供二维码生成应用

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

二维码能够说已经深深的融入了我们的生活其中。到处可见它的身影;但通常我们都是去扫二维码,

曾经我们分享给朋友一个网址直接把Url发过去,如今我们能够把自己的信息生成二维码再分享给他人。

这里就分享一下基于Go语言+Google图表API提供二维码生成功能的小应用,并演示怎样把它公布到云平台上,

让每一个人都能够通过网络訪问使用它。

Google图表API

Google在http://chart.apis.google.com 上提供了一个将表单数据自己主动转换为图表的服务。

只是,该服务非常难交互, 由于你须要将数据作为查询放到URL中。

此程序为一种数据格式提供了更好的的接口: 给定一小段文本。

它将调用图表server来生成二维码(QR码)。这是一种编码文本的点格矩阵。

该图像可被你的手机摄像头捕获。并解释为一个字符串,比方URL, 

这样就免去了你在狭小的手机键盘上键入URL的麻烦。

应用效果

在文本框中输入一个URL,如(http://blog.csdn.net/testcs_dn)。点击Show QR,会生成一张二维码的图片


构建一个相似的应用程序的前提条件

一个 Bluemix 帐户。您还没有? 点击这里注冊。已经有,点击这里登录

对 HTML、CSS 、JavaScript 和Go语言的基本了解。

我提供了全部必要代码,但对这些技术的基本了解有助于您理解有关的细节。



步骤 1. 创建您的 GO 应用程序

  1. 1、在 Bluemix 用户界面中,转至“仪表板”。


  2. 2、单击创建应用程序


  3. 3、单击 Web,然后依照指导经验来选择入门模板。指定名称以及选择编码方式。

  4. 输入应用程序名称

  5. 应用程序名称是唯一的,接下来要通过它做为二级域名来訪问你的应用!
  6. 点击完毕之后,须要等待一会儿,然后能够看到下图的界面

    1. 这时就能够訪问你刚刚创建的应用了。例如以下图:

步骤 2. 准备开发环境

假设您没还有Go语言的本地执行环境,该过程请參考:《Go语言入门》怎样在Windows下安装Go语言编程环境


步骤 3.编写代码

1、下载初始Hello World演示样例代码

进入您的应用程序,点击左側的開始编码,在右側点击“下载起动器代码”。


2、创建本地应用

在Go的$GOROOT或$GOPATH文件夹下创建一个文件夹。将下载后的起动器代码解压到刚创建的文件夹下,

比如我的是: C:\Go\src\web1

打开文件夹下的app.go文件。将文件的内容替换为以下的代码: 

package main

import (
	"log"
	"net/http"
	"os"
	"html/template"
	//for extracting service credentials from VCAP_SERVICES
	//"github.com/cloudfoundry-community/go-cfenv"
)

const (
	DEFAULT_PORT = "8080"
)

var templ = template.Must(template.New("qr").Parse(templateStr)) 

func main() {
	var port string
	if port = os.Getenv("PORT"); len(port) == 0 {
		port = DEFAULT_PORT
	}

	http.HandleFunc("/", helloworld)
	
	log.Printf("Starting app on port %+v\n", port)
	http.ListenAndServe(":"+port, nil)
}


func helloworld(w http.ResponseWriter, req *http.Request) {
  templ.Execute(w, req.FormValue("s"))  
}

const templateStr = `  
<html>  
<head>  
<title>QR Link Generator</title>  
</head>  
<body>  
{{if .}}  
<img src="http://chart.apis.google.com/chart?chs=300x300&cht=qr&choe=UTF-8&chl={{.}}" />  
<br>  
{{.}}  
<br>  
<br>  
{{end}}  
<form action="/" name=f method="GET"><input maxLength=1024 size=70  
name=s value="" title="Text to QR Encode"><input type=submit  
value="Show QR" name=qr>  
</form>  
</body>  
</html> 
`
代码说明

main 之前的代码应该比較easy理解。

我们通过一个常量为server设置了默认端口。 模板变量 templ 正式有趣的地方。它构建的HTML模版将会被server执行并显示在页面中。

稍后我们将具体讨论。

main 函数解析了參数标志并使用我们讨论过的机制将 helloworld 函数绑定到server的根路径。然后调用 http.ListenAndServe 启动server。它将在server执行时处于堵塞状态。

helloworld 仅接受包括表单数据的请求,并为表单值 s 中的数据执行模板。

模板包 html/template 非常强大;该程序仅仅是浅尝辄止。 本质上。它通过在执行时将数据项中提取的元素(在这里是表单值)传给 templ.Execute 执行因而重写了HTML文本。

在模板文本(templateStr)中,双大括号界定的文本表示模板的动作。

从 {{if .}} 到 {{end}} 的代码段仅在当前数据项(这里是点 .)的值非空时才会执行。 也就是说,当字符串为空时,此部分模板段会被忽略。

其中两段 {{.}} 表示要将数据显示在模板中 (即将查询字符串显示在Web页面上)。HTML模板包将自己主动对文本进行转义, 因此文本的显示是安全的。

余下的模板字符串仅仅是页面载入时将要显示的HTML。假设这段解释你无法理解,请參考 文档 获得很多其它有关模板包的解释。

你最终如愿以偿了:以几行代码实现的,包括一些数据驱动的HTML文本的Webserver。 Go语言强大到能让非常多事情以短小精悍的方式解决。

步骤 4. 本地编译执行訪问

编译

你能够通过在命令行窗体执行命令:go install web1 来完毕编译。编译完毕后会在 C:\Go\bin 文件夹下生成web1的exe。

执行

通过上面的方法编译后,双击执行就可以。

也能够在命令行下切换到文件所在的文件夹,比如:C:\Go\src\web1

然后执行:go run app.go

这时可能会弹出Windows防火墙的安全提示,点击同意訪问就可以。

訪问

在浏览器中訪问,查看效果,打开浏览器。输入:http://localhost:8080/

在文本框中输入一个URL,如(http://blog.csdn.net/testcs_dn),点击Show QR,会生成一张二维码的图片


扫一扫这张二维码看看吧


步骤 5. 上传应用程序

登录到 Bluemix™ 后,能够使用 cf push 命令来上传应用程序。

開始之前,您必须:

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
GoCSP模型发布时间:2022-07-10
下一篇:
go操作redis发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap