零基础,遇到一个技术问题,不会写了.....
mysql数据库中有一张users表,存了userID,username,nickname,email,password等注册信息;还有一张profile表,目前只存了userID和avatar_path两个字段。
现在有一个页面,需要列出最新注册的10个用户的 昵称(nickname)和 头像(avatar_path).
我的思路是这样:
1:先得到最后注册的10个用户(model部分的代码如下):
#——
users.py——#
def last_users():
return db.select('users', limit = 10, order='id DESC')
这样,controller部分就可以把last_users传给view,view可以获得用户的昵称(nickname)了:
#——
explore.py——#
class explore:
def GET(self):
last_users = users.last_users()
return view.base(view.explore(last_users), user, siteName)
#——explore.html——#
$def with (last_users)
<h1>Explore</h1>
<ul>
$for user in last_users
<li> $user.nickname </li>
</ul>
但是接下来取得用户头像就有点难了,我觉得首先需要获得最新注册的10个用户的userID,但我只会在view里$
user.id。尝试在model部分得到userID吧:
#——在users.py里加了以下代码——#
def get_last_users_id():
ids = web.listget(last_users(), 0, {})
return ids.get('userID', False)
上面这段代码只能得到最后注册的那一个用户的userID,因为.listget()里有一个参数为0,是取最后1个的。我郁闷半天,尝试去掉0、尝试改0为all,以得到全部的userID,结果报错说必须得有这么个参数。我不知道怎么才能获得这10个用户的userID。
我是想获得了这10个用户的userID后,就可以把它们传给下面的get_avatar()去获取头像,但是这里我也不知道怎么处理了,我也没写过传一串userID去查询数据的经验,也许需要写个for循环什么的?
def get_avatar_by_id(userID): #得到用户头像
return web.listget(
db.select('userProfile', vars=dict(id=userID),
where='id = $id'), 0, {})
def get_avatar(userID):
avatar = get_avatar_by_id(userID)
return avatar.get('avatarPath', False)
请程序员们支招。。。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/44053
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.