0

可能重复:
为每个用户 python 创建唯一的个人资料页面

我正在将 google appengine 与 python 和 jinja2 一起使用,并尝试为我的应用程序中的每个用户提供一个指向其个人资料页面的唯一 URL,任何人都可以在不登录的情况下访问该 URL。到目前为止,这是我的代码:

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)

app = webapp2.WSGIApplication([('/', MainPage),
                               ('/profile/([0-9]+)', ProfilePage),])

当我尝试测试它时,它只会给我一个 404 错误。我想如果代码是正确的,我可能使用了错误的测试 URL。例如,如果这是他们的 OpenID ID:我如何测试它我尝试输入www.url.com/profile/ https://www.google.com/accounts/o8/id?id=AItOawlILoSKGNwU5RuTiRtXug1l8raLE45g-56 id="this part" 是我放的,所以我会有:

url = www.url.com/profile/AItOawlILoSKGNwU5RuTiRtXug1l8raLE45g-56

这就是我尝试过的,但效果并不好。在此先感谢您的帮助!

4

2 回答 2

1

试试这个正则表达式:

r'^/profile/\w*?-(\d+)$'

虽然我也必须告诉你,这是一个非常糟糕的主意!

于 2012-06-29T07:28:32.907 回答
1

您正在使用的网址(www.url.com/profile/AItOawlILoSKGNwU5RuTiRtXug1l8raLE45g-56 )网址的最后一部分是实体的完整密钥,而在代码中您使用实体 ID 加载它(使用get_by_id () )。

于 2012-06-29T07:14:19.347 回答