我在这里问了一个类似的问题:create permenant unique links based on a user ID但是得不到答案。我试图给我的网站上的每个用户一个独特的个人资料页面。我主要设置它但我一直收到404错误。现在我不确定这是我的处理程序是一个问题,还是我正在做的所有方式。
这是我的应用代码:
app = webapp2.WSGIApplication([('/', MainPage),
(r'/profile/(.+)', ProfilePage)])
这是我的ProfilePage处理程序类:
class ProfilePage(webapp2.RequestHandler):
def get(self, profile_id):
profileowner = User.get_by_id(profile_id)
if profileowner:
#Get all posts for that user and render....
#theid is their federated_id
theid = profileowner.theid
personalposts = db.GqlQuery("select * from Post where theid =:1 order by created desc limit 30", theid)
#I collect this so that I can have their username in the top of the page
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)
else:
self.redirect("/")
对于我在数据存储区查看器中找到的1201的ID,我一直在输入www.url.com/profile/1201进行测试,这就是我收到404错误。
更新: 现在它正在将我重定向到主页,其中包含Amber建议的更改。
现在当我改变这一行时:
profileowner = User.get_by_id(profile_id)
到此:
profileowner = User.get_by_id(17001)
它正确通过,所以我猜这行不能正确地从URL获取profile_id
答案 0 :(得分:1)
r'/profile/<profile_id>'
不是有效的正则表达式。你可能想要这样的东西:
r'/profile/(.+)'