[英]Google App Engine Python adding
class Config(db.Model):
Latest = db.IntegerProperty()
class New(webapp.RequestHandler):
def get(self):
config = Config()
Last = Config.Latest
t = Last + 1
回报
t = LastUUID + ADDNUM
TypeError: unsupported operand type(s) for +: 'IntegerProperty' and 'Int'
我想要做的是从数据存储区和app 1获取int。 然后在数据存储区中重新分配int。 我不知道为什么会抛出这些错误。 我甚至试过t = int(Last +1)
。 更新:这是我需要的并解决了我的问题。 http://code.google.com/appengine/articles/sharding_counters.html
您需要的更改不仅仅是调整一行。
您需要某种初始化函数,它将创建一个Config()
实例,为Latest
分配初始值(如1或0)并将其存储在数据存储区中。
然后,您的RequestHandler需要执行查询以检索相关的Config
实例。 最后,更新Latest
,然后再次将实例保存到数据存储区中。
这与Google App Engine或Django无关。 在以下代码中:
class X(object):
@property
def y(self):
return 5
x = X()
print X.y + 5
...你得到同样的错误。 Xy
引用类对象上的未绑定属性。 xy
指的是绑定属性,实际上在上面的例子中, print xy + 5
打印“10”。
将行更改为Last = config.Latest
,它应该工作。 我强烈建议您接受PEP 8中的建议,特别是在“Prescriptive:Naming Conventions”中。 一般来说,在Python类中应该使用CapWords
,而函数和变量应该使用lowercase_with_underscores
。
你正在寻找的语法是
t = int(Last) +1
但是,我不确定你想做什么。 我不知道django或者这是什么框架所以很难说。 但在python中,类型必须兼容您才能添加它们。
http://code.google.com/appengine/articles/sharding_counters.html
这是一个基本的控制器,可以每秒更新多次。 工作完美
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.