新手在sqlite,web2py。我试图将sqlite db内容复制到控制器以获取另一个函数。 我的代码是: db.py
auth.define_tables(username=False, signature=False)
auth.settings.registration_requires_verification = False
auth.settings.registration_requires_approval = False
auth.settings.reset_password_requires_verification = True
db.define_table('chat',
Field('me_from'),
Field('me_body', 'text'),
默认:
@auth.requires_login()
def index():
chats.index(db)
body = db.chat.me_body()
rows = db(db.chat.me_body).select()#(orderby=~db.chat.me_body.created_on)
form1 = [body]
form5 = form1#.split()
name3 = ' '.join(form5)
我想检索一个发布到db ..
的字符串 chat.id chat.me_from chat.me_body chat.me_html
1
2 maurice hi <div class="m...
3 maurice whats up <div class="m...
4 maurice where are you. <div class="m...
5 maurice 3i5ejp[eoityjdt <div class="m...
6 maurice how are you d...<div class="m...
7 maurice britam <div class="m...
从上面的表格中,我想从chat.me_body中检索已发布的单词,例如'hi','whats up','britam'...到默认功能。我反而不断收到以下错误:
如果我使用:
body = db.chat.me_body()
错误是:
TypeError: 'Field' object is not callable
如果我使用:
`body = db.chat.me_body
错误是:
TypeError: sequence item 0: expected string, Field found
如果我使用行:
rows = db(db.chat.me_body).select()
和
form1 = [rows]
错误是:
name3 = ' '.join(form5)
TypeError: sequence item 0: expected string, Rows found
我感谢你的帮助
答案 0 :(得分:1)
执行查询以从数据库获取记录的正确方法是:
rows = db(db.chat).select(db.chat.me_body, db.chat.created_on,
orderby=~db.chat.created_on)
注意,db(db.chat)
是查询db(db.chat.id != None)
的简写(即选择表中的所有记录)。
然后,要仅将me_body
字段值提取到列表中,您可以使用列表推导:
me_body_values = [r.me_body for r in rows]
最后,您可以将这些值加在一起:
name3 = ' '.join(me_body_values)