Golang GAE - 小胡子结构中的 intID

2024-05-15

这是一个Example https://www.dropbox.com/sh/ur2ws1jnik6euef/PjVJSwDTUc/Blog-Golang.zip该应用程序的。关键代码在:golang-code/handler/handler.go(主题后面应该出现一个ID!)

我正在尝试在 Google Appengine 上用 Golang 构建一个小型博客系统,并使用 Mustache 作为模板引擎。

所以,我有一个结构:

type Blogposts struct {
    PostTitle   string
    PostPreview string
    Content     string
    Creator     string
    Date        time.Time
}

数据通过以下方式传递给 GAE

    datastore.Put(c, datastore.NewIncompleteKey(c, "Blogposts", nil), &blogposts)

因此,GAE 自动分配一个 intID (int64)。 现在我尝试获取最新的博客文章

// Get the latest blogposts
c := appengine.NewContext(r)
q := datastore.NewQuery("Blogposts").Order("-Date").Limit(10)

var blogposts []Blogposts
_, err := q.GetAll(c, &blogposts)

直到一切正常,但是当我尝试访问 intID (或 stringID,等等)时,我无法访问这个:-(

<h3><a href="/blog/read/{{{intID}}}">{{{PostTitle}}}</a></h3>

(PostTitle 有效,intID 无效,我尝试了数千种方法,但没有任何效果:-( )

有人有想法吗?这太好了!

编辑: 我用小胡子。

http://mustache.github.com/ http://mustache.github.com/

在我使用的代码中:

x["Blogposts"] = blogposts
data := mustache.RenderFile("templates/about.mustache", x)
sendData(w, data) // Equivalent to fmt.Fprintf

然后可以使用 {{{Content}}} 或 {{{PostTitle}}} 等在 .mustache 模板中访问数据。


正如 hyperslug 所指出的,实体的 id 字段位于键上,而不是它读入的结构中。

解决这个问题的另一种方法是将 id 字段添加到您的结构中并告诉数据存储忽略它 https://developers.google.com/appengine/docs/go/datastore/reference?hl=en#Properties, eg:

type Blogposts struct {
    PostTitle   string
    PostPreview string
    Content     string
    Creator     string
    Date        time.Time
    Id          int64 `datastore:"-"`
}

然后,您可以在调用 GetAll() 后手动填充 Id 字段,如下所示

keys, err := q.GetAll(c, &blogposts)
if err != nil {
    // handle the error
    return
}
for i, key := range keys {
    blogposts[i].Id = key.IntID()
}

这样做的好处是不引入额外的类型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Golang GAE - 小胡子结构中的 intID 的相关文章

  • 将数据预加载到 GAE 开发服务器数据存储中的验收测试

    在我的应用程序中 我有一组 DAO 我将它们注入到我的应用程序层中 对于我正在编写的验收测试 我想用数据预加载 dev server 数据存储 因此我在 JUnit 测试中使用相同的 Spring 配置 使用 ContextConfigur
  • 当使用 k8s.io/client-go 库的 kubernetes 部署发生更改时获得通知的最佳方式是什么?

    Context 我正在编写一个使用k8s io client go https github com kubernetes client go 图书馆 这里是 godocs https godoc org k8s io client go
  • 存储 FCM 的令牌

    我正在尝试将我的令牌存储在我的云数据库中 我稍后将在云函数中使用此令牌 以便向已添加为好友的用户发送通知 然而 推送设备令牌不起作用 因为用户未经授权 授权后我无法保存它 因为令牌是在安装应用程序时生成的 private static fi
  • 有没有办法从另一个包访问结构体的私有字段?

    我在一个包中有一个具有私有字段的结构 package foo type Foo struct x int y Foo 另一个包 例如 白盒测试包 需要访问它们 package bar import foo func change foo f
  • 默认 GCS 存储桶名称

    根据https cloud google com appengine docs python googlecloudstorageclient activate https cloud google com appengine docs p
  • 指针上定义的方法仍然可以用值调用

    Effective Go 文档说明如下 关于接收者的指针与值的规则是 可以在指针和值上调用值方法 但只能在指针上调用指针方法 http tip golang org doc effective go html pointers vs val
  • 显示模板中存储为二进制 blob 的图像

    我有一个模型 其中图像存储为二进制 blob 我想在模板中显示该图像以及有关该对象的其他数据 由于图像不是一个单独的文件 我不知道如何显示它 我尝试过设置标题 或使用send file or render template 但我要么没有得到
  • 如何使用 go1.6.2 构建 linux 32 位

    有没有任何组合GOARCH and GOOS我可以设置哪些值来构建 ELF 32 位二进制文 件 GOOS linux and GOARCH 386 更多示例 架构 32 bit gt GOARCH 386 64 bit gt GOARCH
  • 如何通过在切片上查找来从切片复制到数组

    我正在编写一个库来处理二进制格式 我有一个带有数组变量的结构 我想保留它以用于文档目的 我还需要从输入字节片中查找和判断 一些伪代码 type foo struct boo 5 byte coo 3 byte func main input
  • 为什么我的日期选择器看起来这么奇怪?

    我正在尝试使用 jquery UI 我下载了所有内容并按照说明进行操作 我在 html 中添加了这样的代码
  • 突然出现大量实例

    我们有一个使用实例类型 F1 运行的应用程序 它现在运行良好一个多月了 空闲实例和延迟设置为全自动 它从未使用超过一个实例 今天 在没有任何更改或部署的情况下 我们突然增加了 73 个实例 每个实例的请求很少 例如 1 到 20 个 自然
  • 如何在 Go 中获取给定月份的第一个星期一?

    我正在尝试获取给定月份的第一个星期一 我能想到的最好方法是循环前 7 天 然后返回 Weekday Monday 有一个更好的方法吗 通过查看时间的 Weekday 您可以计算出第一个星期一 package main import fmt
  • 对嵌套结构使用自定义解组时,GoLang 结构无法正确解组

    我们需要对嵌套在多个其他结构中的结构使用自定义解组器 而这些结构不需要自定义解组器 我们有很多类似的结构B下面定义的结构 类似于嵌套A 代码的输出是true false 0 预期的true false 2 有任何想法吗 Go 游乐场示例he
  • 如何构建一个不链接到 musl libc 的 go 可执行文件

    So 官方的 Go 构建容器基于 Alpine 高山用途musl https www musl libc org 作为 libc 而不是 glibc 我需要在容器中构建一个可以在使用 glibc 的 Ubuntu 上运行的 Go 可执行文件
  • 如何进行重定向并保留查询字符串?

    我想进行重定向并保留查询字符串 就像是self redirect加上发送的查询参数 那可能吗 newurl my new route urllib urlencode self request params self redirect ne
  • Google BigQuery DML 更新仍在流缓冲区中的行的查询

    我最近一直在尝试为 Google 的 Big Query 流 api 提出一种重试机制 用于使用 UPDATE 语句对有时仍位于流缓冲区中的行运行 DML 查询 由于这些行尚未导出到表中 BI 的 api 禁止对它们运行 UPDATE 或
  • Go 指针 - 通过指针将值附加到切片

    我有一个 struct ProductData 及其实例 p 它有一个切片属性 type ProductInfo struct TopAttributes map string interface 我想设置 TopAttributes 如下
  • 共享 GOPATH 的良好做法是什么?

    我刚刚开始学习 Go 并阅读现有代码以了解 其他人是如何做的 在这样做时 go 工作空间 的使用 特别是当它与项目的依赖项相关时 似乎无处不在 在处理各种 Go 项目时 使用单个或多个 Go 工作区 即 GOPATH 的定义 的常见最佳实践
  • Golang:如何在HTTP客户端的TLS配置中指定证书

    我有一个证书文件 该位置是 usr abc my crt我想将该证书用于我的 tls 配置 以便我的 http 客户端在与其他服务器通信时使用该证书 我当前的代码如下 mTLSConfig tls Config CipherSuites u
  • 使用生成的 Golang DLL 返回字符串或 *C.Char

    我一直在努力追随z505 goDLL https github com z505 goDLL回购并遇到了一个大问题 该方法无法返回字符串 我无法读取结果的输出变量 这是我到目前为止使用的代码 Go 完整代码https play golang

随机推荐

  • 如何在Python中绘制数据立方体

    我想知道是否有一种方法可以在 Python 中绘制数据立方体 我的意思是每个点都有三个坐标 x part points 0 y part points 1 z part points 2 对于每个点我都有一个标量场 t x y z 我想绘制
  • 在 Rails 的文本字段中显示链接

    在我的 Rails 3 1 应用程序中 我有一个用于评论的文本字段 我希望能够允许人们包含可点击的链接 而不仅仅是显示为纯文本的 url 以及让文本字段识别用户何时文本字段中的换行符 用户无需添加 html 我怎样才能做到这一点 如果用户将
  • 包含目录中的所有文件?

    如何实现以下代码想要实现的目标 include dir In Bash HEADER all headers h echo ifndef ALL HEADERS gt HEADER echo define ALL HEADERS gt gt
  • 在 Toad 中调试 PLSQL

    我一直在使用 PL SQL 为 Oracle db 创建包 并且我正在尝试找到一种在不使用 put line 命令的情况下调试 PL SQL 包的好方法 是否有人对如何成功调试Toad 或 SQLPlus 上的 PL SQL 包 根据 TO
  • 如何在向量中的所有点之间绘制线?

    我有一个包含二维空间中一些点的向量 我希望 MATLAB 用从每个点到每个其他点绘制的线来绘制这些点 基本上 我想要一个所有顶点都连接的图 你能用情节来做到这一点吗 如果可以 怎么做 一种解决方案是使用该函数为每个点组合创建一组索引MESH
  • 如何使用 Excel Interop 获取筛选行的范围?

    我正在为我的项目使用 Excel Interop 程序集 如果我想使用自动过滤器 那么可以使用 sheet UsedRange AutoFilter 1 SheetNames 1 Microsoft Office Interop Excel
  • 在java中轮询Http服务器(重复发送http get请求)

    当对其进行 REST 调用时 我的 Web 服务器会发送一些信息 我想不断轮询该服务器 间隔5秒后重复发送HTTP GET请求 以检查返回的信息是否有任何变化 做到这一点最有效的方法是什么 您能提供一些代码示例吗 请注意 我只想开发客户端代
  • 如何使用 Dialogflow 回复用户的姓名?

    我想知道如何回复用户的姓名 例如 AppName 你好 请问你的名字吗 User 我的名字是约翰 AppName 欢迎约翰来到 appname 我想在没有网络钩子或实现的情况下执行此操作 我只想做对话流 如果您想在其他意图中使用它并以此上下
  • 按下按钮并在java中的新窗口中打开文件

    我创建了一个 JFrame 并放置了一个文本字段和按钮 在文本字段中我放置了从文本文件读取的名称 我知道我想单击按钮并打开一个已知窗口 我想在其中放置名称 其他信息来自同一个文件 这是我的代码 这是我的主框架 package Fronten
  • jupyter 中的 r 图形 - 无法启动 png() 设备

    我在 Jupyter 中使用 R 但无法在笔记本本身中绘制图表 这是一个可重现的示例 set seed 123 mat as matrix x rnorm 100 y rnorm 100 plot mat 在朱皮特中 Error in pn
  • C# 中 LINQ 中的按多列分组

    我有一个类如下 public class ActualClass public string BookName get set public string IssuerName get set public DateTime DateOfI
  • 使用 Visual Studio 2013 构建 Qt 5.2.1 的静态版本

    几天来我一直在尝试使用 Visual Studio 2013 构建 Qt 的静态版本 我就是不明白我做错了什么 System Windows 7 64 位 Visual Studio 2013 仍安装 Visual Studio 2012
  • 7 张牌扑克手牌评估器

    有谁知道评估 7 张牌扑克牌的快速算法吗 这比简单地暴力检查 7 张牌中每 21 个 5 张牌的组合更有效 Cheers Pete 我写了一篇JavaScript 核心评估方法仅使用位操作 因此速度非常快 考虑到这一点 查看 21 种组合还
  • 如何使用 JQuery DataTables 根据每个单元格中值的子字符串对列进行排序

    假设我有一列包含格式为 P 的对象标识符 例如 P12 3767 我使用的是 1 9 1 版本的 JQuery数据表插件 http datatables net用于排序和分页 有没有办法可以忽略单元格值的前 4 个字符 P12 部分 以便我
  • Apache 反向代理的基本身份验证问题

    我想为在 Ubuntu 服务器 12 04 1 上运行的 Apache 反向代理站点添加基本身份验证 网络应用程序是Jenkins http jenkins ci org运行在 Java EE 容器上 我在中添加了以下配置httpd con
  • 制作一个包含自定义对象列表的可分割类

    我在使列表对象可解析时遇到错误 我认为读取对象时发生错误 这是我的代码 public class TestSample implements Parcelable int intValue String stirngValue privat
  • Akka-Streams 收集数据(Source -> Flow -> Flow (collect) -> Sink)

    我对 Scala 和 Akka 完全陌生 我有一个简单的 RunnableFlow Source gt Flow do some transformation gt Sink runForeach 现在我想要这样的东西 Source gt
  • 在网络处理中使用自旋变体

    我编写了一个与网络过滤器挂钩交互的内核模块 网络过滤器挂钩在 Softirq 上下文中运行 我正在访问全局数据结构 哈希表 来自软中断上下文以及进程上下文 进程上下文访问是由于sysctl文件用于修改哈希表的内容 我正在使用 spinloc
  • 用于创建文件夹的应用程序脚本无法在共享驱动器中运行

    谷歌应用程序脚本新手在这里 我发现这段代码可以帮助使用 Google Sheet 中的输入在我的个人 Google Drive 中创建文件夹 来源 Youtube 上的 Google Sheet Community 但是 当我尝试在共享的
  • Golang GAE - 小胡子结构中的 intID

    这是一个Example https www dropbox com sh ur2ws1jnik6euef PjVJSwDTUc Blog Golang zip该应用程序的 关键代码在 golang code handler handler