获取 peewee ORM 中的最后插入 ID (python)

Get last insert ID in peewee ORM (python)

我想检索最后一个插入 ID(用于第二个 table 作为关系),但是,我不知道如何获取它。我正在使用 peewee ORM。

数据库'nest'中的table'readings'有一列'id'(int(11)auto_increment,主键).

import time
from peewee import *

database = MySQLDatabase('nest', **{'user': 'nest'})

class Readings(BaseModel):
time = DateTimeField()

class Meta:
    db_table = 'readings'

dt = Readings.insert(time=time.strftime("%x %X"))
dt.execute();
print "Last insert id:", dt.last_insert_id(database, Readings);

最后一行是我卡住的地方。非常感谢您的帮助。

Python 不需要分号!

请注意...InsertQuery.execute() 实际上应该 return 最后插入的 ID。如果你想调用 last_insert_id() 你需要传入用于执行查询的游标。

非常感谢您的帮助,答案很简单。这是正确的代码:

import time
from peewee import *

database = MySQLDatabase('nest', **{'user': 'nest'})

class Readings(BaseModel):
    time = DateTimeField()

class Meta:
    db_table = 'readings'

dt = Readings.insert(time=time.strftime("%x %X"))
print "Last insert id: %i" % dt.execute()
You can direct fetch id of that insert record like below

import time
from peewee import *

database = MySQLDatabase('nest', **{'user': 'nest'})

class Readings(BaseModel):
time = DateTimeField()

class Meta:
    db_table = 'readings'

dt = Readings(time=time.strftime("%x %X"))
dt.save()

print "Last insert id:"+str(dt.id);

为了以防万一,你可以在插入后立即获取 id

huey = User()
huey.username = 'Huey'
huey.save()
huey.id