-->

创建基于用户ID permenant独特联系[复制](create permenant unique

2019-07-30 04:39发布

可能重复:
为每个用户创建蟒独特的个人资料页

我使用谷歌的AppEngine Python和Jinja2的,并试图让我的应用程序的唯一网址可以由任何人无需登录被访问他们的个人资料页面中的每个用户在这里是我的代码至今:

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 =“这一部分”是什么我把所以我必须:

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

这就是我想,它也不太工作。 在此先感谢您的帮助!

Answer 1:

试试这个正则表达式:

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

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



Answer 2:

您正在使用(www.url.com/profile/ AItOawlILoSKGNwU5RuTiRtXug1l8raLE45g-56)的URL的最后部分的URL是一个完整的关键实体,而在你的代码使用实体ID加载它(使用get_by_id() )。



文章来源: create permenant unique links based on a user ID [duplicate]