2017-01-28 17 views
1

У меня есть следующий код:«Ошибка привязки параметра 0 - вероятно, неподдерживаемый тип» при обращении пункт с бутылкой

from bottle import response, error, get 
import json 


@get('/db_Data') 
def db_Data(db): 

    db.execute("SELECT id, name, category, location, date, amount FROM inventory") 
    names = db.fetchall() # Use db.fetchone() to get results one by one 
    return json.dumps(names) 

@get('/db_Item') 
def db_Item(db): 
    db.execute("SELECT id, name, category, location, date, amount FROM inventory WHERE id=?", (id,)) 
    names = db.fetchall() 
    return json.dumps(names) 

@error(404) 
def error_404_handler(e): 

    return json.dumps({'Error': {'Message': e.status_line, 'Status': e.status_code}}) 

if __name__ == "__main__": 
    from bottle import install, run 
    from wtplugin import WtDbPlugin, WtCorsPlugin 

    install(WtDbPlugin()) 
    install(WtCorsPlugin()) 
    run(host='localhost', port=8080, reloader=True, debug=True, autojson=False) 

Когда я хочу получить только один пункт (2-й маршрут) я получаю:

InterfaceError: Error binding parameter 0 - probably unsupported type. 

Первый маршрут работает просто отлично.

ответ

1

У вас нет значения id в этом втором обработчике. Вам необходимо зафиксировать его на маршруте и передать его функции:

@get('/db_Item/<id>') 
def db_Item(db, id): 
    ... 
+0

oh:/... Он работает сейчас. – JDoe