猿问

最初在 Python 中创建时,如何在 Go 中使用数据存储 GAE?

我有一个"Items"用 Python 创建的数据存储类型,在此代码中不要q.Run()在 Go 中迭代数据(它的版本 2):


type Items struct{

    code string

    date time.Time

    name string

}

func getcode(w http.ResponseWriter, r *http.Request) {

    code := mux.Vars(r)["code"]

    fmt.Fprintf(w,"get code %v",code)


    c := appengine.NewContext(r)

    q := datastore.NewQuery("Items")


    for t := q.Run(c); ; {

        var x Items

        key, err := t.Next(&x)

        fmt.Fprintf(w,"%v",key)


        if err == datastore.Done {

            break

        }

        if err != nil {

            //serveError(c, w, err)

            return

        }

        fmt.Fprintf(w, "Code=%v\n", x.code)

    }


呼如林
浏览 162回答 1
1回答

白板的微信

从数据存储区读取实体时,数据存储区包使用反射来填充结构体字段。在 Go 中,名称以小写字母开头的结构字段不会被导出。无法从定义它们的包以外的包中设置未导出的字段。只有导出的字段(以大写字母开头)才能存储在数据存储中/从数据存储中检索。您可以使用标签来判断数据存储中的属性名称是什么,以防它与字段名称不同。因此,您必须将Items结构更改为:type Items struct {    Code string    `datastore:"code"`    Date time.Time `datastore:"date"`    Name string    `datastore:"name"`}
随时随地看视频慕课网APP

相关分类

Go
我要回答