Jinja2テンプレートエンジンを使用してPythonでGoogleAppEngineを使用しています。
これはばかげた解決策かもしれませんが、私は数千人のユーザーのリストを持っており、現在、彼らは自分のプロフィールページにしかアクセスできず、ログインする必要があります。私はすべてのユーザーに彼らのプロフィールページのためのユニークなURLを与えたいです、そして私はそれをどのように行うのか疑問に思っています。これがうまくいくかどうかはわかりませんが、このようなことが実現可能でしょうか?
class ProfilePage
userlist = GQL query to return all users in the system
user = users.get_by_id()
for user in userlist:
id = user.federated_id
posts = GQL query to return all posts by that user
self.render('/profile/id', posts=posts)
app = webapp2.WSGIApplication([('/', MainPage),
('/profile/([0-9]+)', ProfilePage),])
プロファイルページの私のHTMLには、ユーザーの名前が表示されてから、最近のすべての投稿が表示されます。
アップデート:
これが私の現在のコードですが、404エラーが発生しています:
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)
www.url.com/profile/https://www.google.com/accounts/o8/id?id=AItOawlILoSKGNwU5RuTiRtXug1l8raLEv5-mZgと入力してみたところ、どうすればテストできますか
更新:取得したIDはOpenID URLではなく、各ユーザーに与えられたアプリ固有のIDであり、これが正しい使用方法です。