Crea una página de perfil única para cada usuario de Python.
Estoy usando el motor de aplicaciones de Google en python con un motor de plantillas Jinja2.
Esta puede ser una solución tonta, pero tengo una lista de unos pocos miles de usuarios y ahora solo pueden acceder a sus propias páginas de perfil y deben iniciar sesión para hacerlo. Me gustaría dar a cada usuario una URL única para su página de perfil y me pregunto cómo hacerlo. No estoy seguro de si esto funcionaría, pero ¿podría algo como esto ser factible?
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),])
Mi HTML para la página de perfil solo muestra el nombre del usuario y luego muestra todas sus publicaciones recientes.
Actualizar:
Así que aquí está mi código actual, pero acabo de recibir un error 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)
¿Cómo puedo probarlo? Intenté simplemente ingresando www.url.com/profile/https://www.google.com/accounts/o8/id?id=AItOawlILoSKGNwU5RuTiRtXug1l8raLEv5-mZg
Actualización: la ID que estaba recuperando no era su URL de OpenID, sino una identificación específica de la aplicación que cada usuario recibe y por lo tanto es la correcta de usar