2012-06-30 12 views
0

我在這裏問了一個類似的問題:create permenant unique links based on a user ID但無法完全得到答案。我試圖給我的網站上的每個用戶一個獨特的個人資料頁面。我有它主要設置,但我不斷收到404錯誤。現在我不確定這是我的處理程序問題還是我正在做的整個方式。用谷歌應用程序引擎創建獨特頁面時出現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("/") 

對於1201的ID,這是我在數據存儲瀏覽器中發現了用,我通過在www.url.com/profile/1201上輸入來測試它,那是當我得到404錯誤。

更新: 它現在正在將我重定向到主頁,並通過Amber建議的更改。

現在,當我改變這一行:

profileowner = User.get_by_id(profile_id) 

這樣:

profileowner = User.get_by_id(17001) 

它通過正確的,所以我猜測,該行不正確地從URL獲得PROFILE_ID

回答

1
r'/profile/<profile_id>' 

不是有效的正則表達式。你可能希望這樣的事情,而不是:?

r'/profile/(.+)' 
+0

那麼它只是重定向我(「/」 – exployre

+0

好了,這意味着你正在使用無效的id是什麼網址,你想訪問你試過轉換ID爲整數? – Amber

+0

http://www.url.com/profile/17001和我從我的應用程序引擎數據查看器獲得的名稱/ ID列下的17001.我剛剛更新了這個問題,並提供了更多信息 – exployre

相關問題