def api_contract(*, userid, page='1'): 'get person contract' print(userid) page_index = get_page_index(page) num = yield from Contract.findNumber('count(id)') p = Page(num, page_index) if num == 0: return dict(page=p, contract=()) sql = 'SELECT `users`.id,`users`.username,`users`.nickname,`users`.email,`users`.birthday,`users`.sex,`users`.avatar,' \ '`users`.phone,`users`.remark,users.create_date,users.update_date,contracts.create_date AS contract_date,contracts.note ' \ 'FROM users LEFT JOIN contracts ON users.id = contracts.contractid WHERE users.id in (SELECT contractid FROM ' \ 'contracts WHERE `contracts`.userid = ?);' contracts = yield from Contract.mselect(sql, [userid]) print(contracts) return dict(page=p, contract=contracts)