gpt4 book ai didi

python - 检索记录 MySql 数据库 PyDAL

转载 作者:行者123 更新时间:2023-11-30 21:43:11 24 4
gpt4 key购买 nike

我有一个 MySql 数据库,我的 Web2Py 应用程序在其中存储数据。我的应用程序可以成功插入记录。现在的问题是在检索信息时。下面是我的 DAL 连接和作者表定义。

db = DAL('mysql://myUser:myPassWord@localhost/myDB',
migrate_enabled=true, check_reserved=['all'],fake_migrate_all=True,
migrate=False)

db.define_table('author',
Field('author_id', 'string'),
Field('name', 'string', requires=[IS_NOT_EMPTY()]),
...
Field('lang', 'string', requires=[IS_NOT_EMPTY()]),
primarykey=['author_id'])

问题是当我尝试在我的 Controller 中检索作者表的所有信息(这意味着在 SQL 中选择 * 来自作者):

crud.search(db.author)

我遇到了一个错误:

<class 'AttributeError'> 'Table' object has no attribute 'id'
...
query undefined
args {}
args.get <built-in method get of dict object>
table <Table author (author_id, name, screen_n...l,
url, verified, lang)>
table.id undefined

在我的表定义中,您可以看到我的主键是 author_id 字段,它是 varchar(string python),我在表 DAL 定义中指定为主键,如 Web2Py DAL Documentation (primaryKey) 中所述.但是当我在那个表中进行选择时,我得到了上面的错误。我需要做什么?我已经搜索过了,但没有找到成功的解决方案。有人可以帮助我吗?谢谢。

最佳答案

web2py 不完全支持键控表(即主键不是自动递增 ID 字段的表)。特别是,crud.search 不支持此类表。

如果可能的话,最好在你的表中包含一个id类型的字段作为主键(如果你没有指定这样一个字段,DAL会自动包含一个名为"id").

另请注意,Crud 已被弃用,取而代之的是 SQLFORM.grid

关于python - 检索记录 MySql 数据库 PyDAL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50657350/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com