python - AppEngine 中的 GQL 查询

标签 python google-app-engine datastore gql

我正在使用数据存储尝试执行一个简单的查询,但它没有按预期工作:

class User_Machine(db.Model):
    machine_id = db.IntegerProperty (required = True)
    username = db.StringProperty (required = True)
    last_call = db.DateTimeProperty (auto_now = True)

def query(username, machine_id)
    q = db.GqlQuery('SELECT * FROM User_Machine WHERE username=:1 AND machine_id=:2', username, machine_id)
    r = q.get()
    return r

print query('uherran', 23)

我的回答是:

None

我期待着读到这个记录:

datastopre 查看器中的值为:

Enitty Kind  User_Machine
Entity Key   ahBkZXZ-Z2VzdG9yYXZpc29zchILEgxVc2VyX01hY2hpbmUYKAw
ID   40
username (string)   uherran
last_call (datetime)    2012-08-19 09:57:35
machine_id (long)       23

我对查询如何进行的理解一定是完全错误的。

有人可以帮忙吗?

谢谢。

事实上。我对我的代码进行了一些调整以提供清晰度,但似乎我没有进行适当的错误检查。

代码是:

def check_machine_username(self, machine_id, username):
        key='CHECK_MACHINE_USERNAME_'+machine_id+'_'+username
        q= memcache.get(key)
        if q:
            return True
        else:
            logging.info(username)
            logging.info(machine_id)
            q = dbstructure.User_Machine.all()
            q.filter('username = ', username)
            q.filter('machine_id = ', machine_id)

            if q.get():
                loggin.info('query right')
                memcache.set(key,True)
                return True
            else:
                logging.info('query wrong')
                return False

无论我的 User_machine 数据库中有什么,查询总是返回空。

最佳答案

我的猜测是,在失败的情况下,您的 machine_id 是一个字符串,而它应该是一个整数。

关于python - AppEngine 中的 GQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12028135/

相关文章:

python - 如何将树类对象结构序列化为JSON文件格式?

java - Google Cloud Endpoints 未在 API 资源管理器中显示 map

python - GAE — 奇怪的实例变量行为

database - Prolog 中数据管理的最佳实践

javascript - 如何使用数据存储使用 JSON 数据填充表单?

azure - Azure ML 工作区中的数据 Assets

python - 当 asyncio.PriorityQueue 处于 maxsize 并且我 put() 新项目时,如何将项目从 asyncio.PriorityQueue 中推出?

python - 如果单独的值与 Pandas 中的列表匹配,则更新单元格值

python - 在 python 中跟踪多台主机

python - 如何获取ndb.Model的 "id"属性