Я пытаюсь найти обучающее руководство по go appengine здесь , но я не могу завершить пример импорта библиотеки шаблонов.Это пример кода, который я пытаюсь:
<code>package hello
import (
"fmt"
"http"
"template"
)
func init() {
http.HandleFunc("/", root)
http.HandleFunc("/sign", sign)
}
func root(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, guestbookForm)
}
const guestbookForm = `
<html>
<body>
<form action="/sign" method="post">
<div><textarea name="content" rows="3" cols="60"></textarea></div>
<div><input type="submit" value="Sign Guestbook"></div>
</form>
</body>
</html>
`
func sign(w http.ResponseWriter, r *http.Request) {
err := signTemplate.Execute(w, r.FormValue("content"))
if err != nil {
http.Error(w, err.String(), http.StatusInternalServerError)
}
}
var signTemplate = template.MustParse(signTemplateHTML, nil)
const signTemplateHTML = `
<html>
<body>
<p>You wrote:</p>
<pre>{@|html}
`
Я получаю ошибку:
Compile error:
/home/habitue/Programming/GoExamples/hello/hello.go:36: undefined: template.MustParse
Мое приложение.yaml это:
application: helloworld
version: 1
runtime: go
api_version: 3
handlers:
- url: /.*
script: _go_app
Я попытался изменить список dev_appserver.py EXTRA_PATHS
, чтобы включить системную версию библиотек Go, так как я заметил, что папка appengine lib не содержит библиотеки шаблонов, ноно безрезультатно.Вот мой текущий EXTRA_PATHS
с моими изменениями, являющимися двумя последними записями:
EXTRA_PATHS = [
DIR_PATH
,os.path.join(DIR_PATH, 'lib', 'antlr3')
,os.path.join(DIR_PATH, 'lib', 'django_0_96')
,os.path.join(DIR_PATH, 'lib', 'fancy_urllib')
,os.path.join(DIR_PATH, 'lib', 'ipaddr')
,os.path.join(DIR_PATH, 'lib', 'protorpc')
,os.path.join(DIR_PATH, 'lib', 'webob')
,os.path.join(DIR_PATH, 'lib', 'yaml', 'lib')
,os.path.join(DIR_PATH, 'lib', 'simplejson')
,os.path.join(DIR_PATH, 'lib', 'google.appengine._internal.graphy')
,os.path.join('usr', 'lib', 'go', 'lib')
,os.path.join('usr', 'lib', 'go', 'pkg', 'linux_amd64')
]
На данный момент, я не совсем уверен, как поступить.Я не могу найти в Интернете нигде, где упоминается аналогичная проблема.Я использую 64-битную Linux-версию приложения Go SDK, и моя ОС - Arch Linux, если это поможет.