我很懒!我只想存储一个字符串值.就这样!我可以跳过任何类型的建模并只存储一个值吗?
据我所知:DataStore是App Engine上唯一可用的存储.但是,即使你很懒,也不是很多代码.;)
确保导入db
模块:
from google.appengine.ext import db
Run Code Online (Sandbox Code Playgroud)
然后只存储一个键/值对(然后您可以使用此模型存储您可能添加的任何其他杂项字符串):
class MyData(db.Model):
myKey = db.StringProperty(required=True)
myValue = db.StringProperty(required=True)
data = MyData(myKey="Title", myStringValue="My App Engine Application")
data.put()
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式再次获取:
db.Query(Entry).filter("myKey=", "Title").get().myStringValue
Run Code Online (Sandbox Code Playgroud)
Mark B的解决方案很好,但如果您的"密钥"是实体的正确密钥,您将获得更好的性能.这样,您可以通过所需的数据将扫描结果减半.(在SQL术语中,您将通过主键进行选择.)
class Global(db.Model):
val = db.StringProperty()
@classmethod
def get(cls, key):
return cls.get_by_key_name(key).val
@classmethod
def set(cls, key, val):
entity = cls(key_name=key, val=val)
entity.put()
return val
Run Code Online (Sandbox Code Playgroud)
现在,您可以使用类方法进行设置.
Global.set('foo', 'this is the value for foo')
print "The value of foo is: %r" % Global.get('foo')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1338 次 |
最近记录: |