[英]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.