我在 python 中使用带有 Jinja2 模板引擎的谷歌应用引擎。
这可能是一个愚蠢的解决方案,但我有一个几千名用户的列表,现在他们只能访问自己的个人资料页面,并且必须登录才能这样做。我想为每个用户的个人资料页面提供一个唯一的 URL,我想知道该怎么做。我不确定这是否可行,但这样的事情是否可行?
class ProfilePage
userlist = GQL query to return all users in the system
user = users.get_by_id()
for user in userlist:
id = user.federated_id
posts = GQL query to return all posts by that user
self.render('/profile/id', posts=posts)
app = webapp2.WSGIApplication([('/', MainPage),
('/profile/([0-9]+)', ProfilePage),])
我的个人资料页面的 HTML 只显示用户的姓名,然后显示他们最近发布的所有帖子。
更新:
所以这是我当前的代码,但我只是收到 404 错误:
class ProfilePage(webapp2.RequestHandler):
def get(self, profile_id):
user = User.get_by_id(profile_id)
#profile_id = some unique field
if user:
#Get all posts for that user and render....
theid = user.theid
personalposts = db.GqlQuery("select * from Post where theid =:1 order by created desc limit 30", theid)
else:
personalposts = None
global visits
logout = users.create_logout_url(self.request.uri)
currentuser = users.get_current_user()
self.render('profile.html', user = currentuser, visits = visits, logout=logout, personalposts=personalposts)
我该如何测试它我尝试输入 www.url.com/profile/https://www.google.com/accounts/o8/id?id=AItOawlILoSKGNwU5RuTiRtXug1l8raLEv5-mZg
更新:我检索的 ID 不是他们的 OpenID URL,而是为每个用户提供的特定于应用程序的 ID,因此使用正确