2013-03-07 62 views
0

我有這個功能(SQLAlchemy的):使用功能輸入作爲代碼的Python

# table: Table to search (should be the class name) 
# column: filter to use 
# search: search term 
# 
# Returns a list [object] with the found entries in the database 
# Uses the SQL LIKE statement 

def search(table, column, search): 
    results = dbsession.query(table).filter(column.like('%' + search + '%')).all() 
    return results 

所以這個搜索功能在類「表」,使用過濾器「列」,並搜索「搜索」搜索。我現在遇到的問題是,如果我輸入「列」的值(至極實際上不是一個字符串,但一段代碼),我總是得到這個名字不存在的錯誤:

users = search(User, fname, 'Jo') 
NameError: name 'fname' is not defined 

有人知道如何正確編碼嗎?

+3

這是一個運行時錯誤,因爲您沒有定義'fname',*不是* sqlalchemy問題。 – 2013-03-07 11:26:12

+0

好吧,但我應該怎麼做呢?我想在fname列中搜索? – arnoutaertgeerts 2013-03-07 11:26:50

+0

如果你有桌子對象,爲什麼不從那裏抓呢? 'User.fname'是專欄.. – 2013-03-07 11:28:06

回答

1

改爲使用users = search(User, User.fname, 'Jo')

+0

ow權利,謝謝! – arnoutaertgeerts 2013-03-07 11:30:35