【问题标题】:is it safe to use non-English characters for the ID part of a datastore key?对数据存储密钥的 ID 部分使用非英文字符是否安全?
【发布时间】:2014-07-20 13:42:03
【问题描述】:

我想为我的用户提供在其用户名中包含非英文字符的选项。

为了简单起见(并避免细微的错误),我想使用他们的用户名作为他们实体的 ndb 键的 id 部分。我的问题是,这是一种安全的方法吗?

我无法找到有关 GAE 数据存储是否支持非英文字符作为键的 id 部分的信息。

【问题讨论】:

  • 是的,您可以,但在这种特殊情况下,您不应该这样做,因为您无法修改 ID(用户名)

标签: google-app-engine google-cloud-datastore app-engine-ndb


【解决方案1】:

直接出马,源码(key类):

  • 种类和字符串 ID 不得为空,且长度不得超过 500 个字节(在 UTF-8 编码后,如果作为 Python unicode 对象给出)。

如果使用 UTF-8,您应该能够使用任何您想要的语言。另外,来自doc

下一个组件是 ID (int64) 或键名 (str)。

页面顶部定义的“str”表示接受非 ASCII 字符。

附言使用用户名作为唯一 ID 有一些缺点;请参阅this discussion(忽略它的 SQL 方面。)

【讨论】:

  • 很好的回答OmegaDirective,很深入,非常感谢! :)
猜你喜欢
  • 2022-11-13
  • 2018-11-04
  • 1970-01-01
  • 2011-04-07
  • 2012-08-05
  • 2019-08-15
  • 2020-12-21
  • 2011-10-14
  • 2019-04-05
相关资源
最近更新 更多