繁体   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