Golang 中国

我想学习go web中的表单接受输入 看见书里说要创建一个gtp1文件 好像是类似html的文件 但是该如何调用该文件和相应的.go文件?

6 回复
ggaaooppeenngg
#1 ggaaooppeenngg • 2014-04-06 14:51

go template 的简称而已,只是个文件后缀名,你用html后缀也行。 看看golang.org 的 template 包 里面有些例子。

wxfbboy
#2 wxfbboy • 2014-04-06 15:29

@ggaaooppeenngg 如果我要访问这个html文件 怎么用?localhost/example.html这样吗?

ggaaooppeenngg
#3 ggaaooppeenngg • 2014-04-07 00:37

你看的是 go web 开发 那本书么? 你是文件找不到是吧。go 的目录是相对你的工作目录算的。 或者上下代码,把问题描述清楚。

wxfbboy
#4 wxfbboy • 2014-04-07 04:32

@ggaaooppeenngg
这是我的两个文件
new file.go

package main

import (
   "fmt"
   "net/http"
   "log"
)
func login(w http.ResponseWriter,r *http.Request){
  r.ParseForm()
  if r.Method=="POST"{
     fmt.Println(r.Form["username"])
     fmt.Println(r.Form["password"])
  }
}
func main(){
  http.HandleFunc("/",login)
  err:=http.ListenAndServe(":9090",nil)
  if err!=nil{
      log.Fatal(err)
  }
}

login.gtp1

<html>
  <head>
       <title> </title>
  </head>
  <body>
      <form action="http://127.0.0.1:9090/" method="post">
      用户名:<input type="text" name="username">
      密码:<input type="password" name="password">
      <input type="submit" value="登录">
      </form>
  </body>
</html>

我的目录

 ----helloWorldGO<br>   
       -----bin  
       -----pkg
       -----src  
       -----login.gtp1  
       -----D:\GO\pkg 
       -----GOROOT

就是说 我想访问这个gtp1 如何访问 现在知道是9090端口 那么是http://localhost:9090/helloWorldGO/login.gtp1这样子的吗
jimmykuu
#5 jimmykuu • 2014-04-07 04:54

首先,这个不是.gtp1,是.gtpl,当然我们一般用.html,这样用编辑器打开也比较方便,可以高亮显示。

其实,如果你想在login()中用,就需要渲染模板,然后输出,如何使用可以参考html/templatetext/template两个package。你看的书里应该也有讲,那就仔细看看。如果你不想看书,可以看我的这段代码: https://github.com/jimmykuu/gopher/blob/master/src/gopher/views.go#L375

wxfbboy
#6 wxfbboy • 2014-04-07 05:29

@谢谢站长大大的耐心解答 书里确实有讲到渲染模版

需要 登录 后方可回复, 如果你还没有账号你可以 注册 一个帐号。