簡體   English   中英

Google App Engine Python添加

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM