我有
http://localhost:8080/?key=ahFkZXZ-ZGV2LWVkdW5hdGlvbnIOCxIIVXNlckluZm8YLAw
我想询问如何:
*datastore.Key
感谢您的帮助!
答案 0 :(得分:6)
首先:您应该考虑您需要哪些包。由于您尝试从GET
读取URL
值,因此您需要net/http
中的函数。
特别是:FormValue(key string)
会返回GET
和POST
个参数。
第二:现在打开appengine/datastore
文档,找到执行以下操作的函数:
string
解码为*datastore.Key
(DecodeKey(encoded string))现在这很简单:
func home(w http.Response, r *http.Request) {
c := appengine.NewContext(r)
// Get the key from the URL
keyURL := r.FormValue("key")
// Decode the key
key, err := datastore.DecodeKey(keyURL)
if err != nil { // Couldn't decode the key
// Do some error handling
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
// Get the key and load it into "data"
var data Data
err = datastore.Get(c, key, data)
if err != nil { // Couldn't find the entity
// Do some error handling
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
}