0

我在这里问了一个类似的问题:根据用户 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

4

1 回答 1

1
r'/profile/<profile_id>'

不是有效的正则表达式。你可能想要这样的东西:

r'/profile/(.+)'
于 2012-06-30T18:59:43.590 回答