the*_*des 8 python google-app-engine
我想知道使用Model.get_by_key_name()vs Model.get_by_id()获取记录
例如,假设我返回一些将用于显示记录表的JSON,并且对于每个记录,都有一个删除该记录的按钮.假设我有模型'Foo'和模型实例'foo'.
我相信我可以使用以下任一方法将每个按钮与相应的记录关联:
str(foo.key()) #suppose it eval's to "axhYm92ZZXJvY2tyDgsSCENhnb3J5GBQM"
Run Code Online (Sandbox Code Playgroud)
要么
foo.key().id() #suppose it eval's to "57"
Run Code Online (Sandbox Code Playgroud)
其中一个值将进入HTML表单,用户可以单击按钮,该请求将使用此键/ id删除记录.
然后该请求将导致:
Foo.get_by_key_name("axhYm92ZZXJvY2tyDgsSCENhnb3J5GBQM").delete()
Run Code Online (Sandbox Code Playgroud)
要么
Foo.get_by_id(57).delete()
Run Code Online (Sandbox Code Playgroud)
现在,作为犹豫不决的ADHD程序员,我需要知道......这是"正确的"方式吗?他们似乎都工作,但是有哪些情况使一个人比另一个更好?使用'key'方式与'id'方式有什么好处?
Dav*_*ith 11
您将Key name与字符串化Key混淆.他们是不同的.密钥的名称是您在构造时通过保留的key_name属性为实体提供的名称.如果不这样做,系统将生成一个id.实体密钥可以具有名称或ID,但不能同时具有两者.
如果您有意将字符串化,则可以通过将其传递回Key构造函数来重新构建它.
stringifiedKey = str(key)
reconstitutedKey = db.Key(stringifiedKey)
Run Code Online (Sandbox Code Playgroud)
假设你真的意味着名字与身份,这是一个更方便的问题.任何性能差异都将是微观的.
| 归档时间: |
|
| 查看次数: |
2756 次 |
| 最近记录: |