0

重複の可能性:
ユーザーごとに一意のプロファイルページを作成するpython

私はPythonとjinja2でgoogleappengineを使用しており、アプリ内の各ユーザーに、ログインしなくても誰でもアクセスできるプロファイルページへの一意の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

使用しているURL(www.url.com/profile/ AItOawlILoSKGNwU5RuTiRtXug1l8raLE45g-56)URLの最後の部分は、エンティティの完全なキーですが、コードでは、エンティティIDを使用してURLをロードしています(get_by_id(を使用) )。

于 2012-06-29T07:14:19.347 に答える
1

次の正規表現を試してください。

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

これは非常に悪い考えだとも言わなければなりませんが!

于 2012-06-29T07:28:32.907 に答える