我在这里问了一个类似的问题:根据用户 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("/")
对于我在数据存储查看器中找到的用于使用的 ID 1201,我一直在通过输入 www.url.com/profile/1201 对其进行测试,这就是我收到 404 错误的时候。
更新:它现在将我重定向到带有 Amber 建议更改的主页。
现在当我改变这一行时:
profileowner = User.get_by_id(profile_id)
对此:
profileowner = User.get_by_id(17001)
它通过正确,所以我猜该行没有正确地从 URL 获取 profile_id