如何将HTML GET表单请求传递给GoLang并存储在一个变量中?

huangapple go评论114阅读模式
英文:

Goji - How to get a HTML GET form request to GoLang in a variable?

问题

请查看我的两个文件main.go和index.html。
我正在使用Goji web微框架开始。在Goji web框架中找到代码片段。

在我的示例中,我可以在@Localhost8000上看到HTML表单网页index.html,并且我可以在输入字段中输入“test”并点击提交按钮。
在终端输出中,我可以看到发送了“Started GET“/?name=test”from 127.0.0.1:51580”。

如何将HTML GET表单请求传递给golang中的变量?
我认为可以使用goji.Get来实现。我尝试了几种方法,但无法运行。
如果有人能给我一个提示或代码片段,我会很高兴的。我还在学习golang。

文件main.go:

  1. package main
  2. import (
  3. "net/http"
  4. "github.com/zenazn/goji"
  5. )
  6. func main() {
  7. staticFilesLocation := "public"
  8. goji.Handle("/", http.FileServer(http.Dir(staticFilesLocation)))
  9. goji.Serve()
  10. }

文件index.html:

  1. <html>
  2. <head>
  3. </head>
  4. <body>
  5. <!-- Simple form which will send a GET request -->
  6. <form action="">
  7. <label for="GET-name">Name:</label>
  8. <input id="GET-name" type="text" name="name">
  9. <input type="submit" value="sendGET">
  10. </form>
  11. </body>
  12. </html>

文件位置:

  1. src/formgoji/main.go
  2. src/formgoji/public/index.html

输出 - 在终端窗口中启动:

  1. $ go run main.go
  2. 2014/12/22 14:38:40.984448 Starting Goji on [::]:8000
  3. 2014/12/22 14:38:48.789214 [xxxx/yyyy-000001] Started GET "/" from 127.0.0.1:51580
  4. 2014/12/22 14:38:48.789332 [xxxx/yyyy-000001] Returning 304 in 74.8μs
  5. 2014/12/22 14:39:11.239039 [xxxx/yyyy-000002] Started GET "/?name=test" from 127.0.0.1:51580
  6. 2014/12/22 14:39:11.239149 [xxxx/yyyy-000002] Returning 304 in 66.489μs

类似的问题在stackoverflow上有:
parse-input-from-html-form-in-golang
我无法运行这个示例。我认为这与文件的位置以及@localhost的定义有关。这在这个示例中缺失了。

英文:

Please take a look at my two files main.go and index.html.
I am starting with the Goji web microframework. Find Snippets at the Goji web framework.

In my example I can see the HTML form webpage index.html at @Localhost8000
and I can type in the input field for example "test" and press the submit button.
In the terminal output I can see that it was send: "Started GET "/?name=test" from 127.0.0.1:51580"

How can I get a HTML GET form request to golang in a variable?
I think it will be going with goji.Get. I tried several ways but I get it not to run.
I am happy if somebody can give me a hint or a snippet. I still learning golang.

File main.go:

  1. package main
  2. import (
  3. &quot;net/http&quot;
  4. &quot;github.com/zenazn/goji&quot;
  5. )
  6. func main() {
  7. staticFilesLocation := &quot;public&quot;
  8. goji.Handle(&quot;/&quot;, http.FileServer(http.Dir(staticFilesLocation)))
  9. goji.Serve()
  10. }

File index.html:

  1. &lt;html&gt;
  2. &lt;head&gt;
  3. &lt;/head&gt;
  4. &lt;body&gt;
  5. &lt;!-- Simple form which will send a GET request --&gt;
  6. &lt;form action=&quot;&quot;&gt;
  7. &lt;label for=&quot;GET-name&quot;&gt;Name:&lt;/label&gt;
  8. &lt;input id=&quot;GET-name&quot; type=&quot;text&quot; name=&quot;name&quot;&gt;
  9. &lt;input type=&quot;submit&quot; value=&quot;sendGET&quot;&gt;
  10. &lt;/form&gt;
  11. &lt;/body&gt;
  12. &lt;/html&gt;

File loacations:

  1. src/formgoji/main.go
  2. src/formgoji/public/index.html

Output - start in terminal window:

  1. $ go run main.go
  2. 2014/12/22 14:38:40.984448 Starting Goji on [::]:8000
  3. 2014/12/22 14:38:48.789214 [xxxx/yyyy-000001] Started GET &quot;/&quot; from 127.0.0.1:51580
  4. 2014/12/22 14:38:48.789332 [xxxx/yyyy-000001] Returning 304 in 74.8&#181;s
  5. 2014/12/22 14:39:11.239039 [xxxx/yyyy-000002] Started GET &quot;/?name=test&quot; from 127.0.0.1:51580
  6. 2014/12/22 14:39:11.239149 [xxxx/yyyy-000002] Returning 304 in 66.489&#181;s

A similiar question was here at stackoverflow:
parse-input-from-html-form-in-golang
This example I couldn't run.I think this has to do where your files are located and
how is your @localhost defined. This is in this example missing.

答案1

得分: 1

Goji被宣传为一个简约的框架,在处理表单提交方面似乎没有提供太多帮助,所以我认为你需要转向标准的Go语言。

你可以参考以下示例中如何管理body属性,这些示例摘自Go语言的文档:

编辑页面(以文本区域表示)

保存页面(使用FormValue()Request中获取)

英文:

Goji's advertised as a minimalistic framework and doesn't seem to be helping you much in terms of form submissions, so I think you'll need to look to standard Go.

For an example you might check out how the body attribute is managed in the following examples, taken from Go's documentation:

Editing Pages (represented as a textarea)

Saving Pages (retrieved from Request using FormValue())

huangapple
  • 本文由 发表于 2014年12月22日 23:10:53
  • 转载请务必保留本文链接:https://go.coder-hub.com/27605327.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定