Erstelle eine eigene Profilseite für jeden Benutzer Python
Ich verwende die Google App Engine in Python mit einer Jinja2 Template Engine.
Dies mag eine dumme Lösung sein, aber ich habe eine Liste von ein paar Tausend Benutzern und im Moment können sie nur auf ihre eigenen Profilseiten zugreifen und müssen angemeldet sein, um dies zu tun. Ich möchte jedem Benutzer eine eindeutige URL für seine Profilseite geben und frage mich, wie ich das machen soll. Ich bin nicht sicher, ob dies funktionieren würde, aber könnte so etwas machbar sein?
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),])
In meinem HTML-Code für die Profilseite wird nur der Name des Benutzers und anschließend alle aktuellen Beiträge des Benutzers angezeigt.
Aktualisieren:
Hier ist also mein aktueller Code, aber ich erhalte nur eine 404-Fehlermeldung:
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)
Wie kann ich es testen? Ich habe versucht, einfach www.url.com/profile/https://www.google.com/accounts/o8/id?id=AItOawlILoSKGNwU5RuTiRtXug1l8raLEv5-mZg einzugeben
Update: Die ID, die ich abgerufen habe, war nicht die OpenID-URL, sondern eine app-spezifische ID, die jedem Benutzer zugewiesen wurde und daher die richtige ist