web2py - 从行对象中提取值并存储在变量中
web2py - Extract value from row object and store in variable
我正在编写一个简单的 web2py 应用程序,但似乎无法弄清楚如何 运行 对来自 db.select 语句的变量进行比较检查。代码贴在下面:
form = FORM('Enter Member ID: ', INPUT(_type='text', _name='name'),
INPUT(_type='submit', _value='submit'))
if form.accepts(request, session):
member_id= form.vars.name
measure_1 = db(db.Detailed_Info.MEMBER_NBR==form.vars.name).select(db.Detailed_Info.MEASURE_1)
measure_2 = db(db.Detailed_Info.MEMBER_NBR==form.vars.name).select(db.Detailed_Info.MEASURE_2)
response.flash = 'Form Accepted'
if measure_1=='DBD':
test = 'IT WORKED'
else:
test = 'IT DIDNT WORK'
return dict(form=form, test=test)
我的问题是,我能够看到第一个 select 语句(定义变量 measure_1)的值实际上是 'DBD'。但是底部的 if 条件语句不起作用。我觉得这是因为 select 语句的结果是一个 "row" 对象。有没有办法提取实际值?
谢谢!
引用 web2py 手册:
DAL Rows 是数据库返回的对象 select。可以想到
作为行列表:
rows = db(db.mytable.myfield!=None).select()
行包含字段值。
for row in rows:
print row.myfield
我假设你也可以为第一行做例子,
result = rows[0].myfield
编辑:
再次从文档中,索引应该工作:
给定一行
row = rows[0]
您可以使用多个等效表达式提取其值:
>>> row.name
Alex
>>> row['name']
Alex
>>> row('person.name')
Alex
我正在编写一个简单的 web2py 应用程序,但似乎无法弄清楚如何 运行 对来自 db.select 语句的变量进行比较检查。代码贴在下面:
form = FORM('Enter Member ID: ', INPUT(_type='text', _name='name'),
INPUT(_type='submit', _value='submit'))
if form.accepts(request, session):
member_id= form.vars.name
measure_1 = db(db.Detailed_Info.MEMBER_NBR==form.vars.name).select(db.Detailed_Info.MEASURE_1)
measure_2 = db(db.Detailed_Info.MEMBER_NBR==form.vars.name).select(db.Detailed_Info.MEASURE_2)
response.flash = 'Form Accepted'
if measure_1=='DBD':
test = 'IT WORKED'
else:
test = 'IT DIDNT WORK'
return dict(form=form, test=test)
我的问题是,我能够看到第一个 select 语句(定义变量 measure_1)的值实际上是 'DBD'。但是底部的 if 条件语句不起作用。我觉得这是因为 select 语句的结果是一个 "row" 对象。有没有办法提取实际值?
谢谢!
引用 web2py 手册:
DAL Rows 是数据库返回的对象 select。可以想到 作为行列表:
rows = db(db.mytable.myfield!=None).select()
行包含字段值。
for row in rows:
print row.myfield
我假设你也可以为第一行做例子,
result = rows[0].myfield
编辑: 再次从文档中,索引应该工作: 给定一行
row = rows[0]
您可以使用多个等效表达式提取其值:
>>> row.name
Alex
>>> row['name']
Alex
>>> row('person.name')
Alex