gpt4 book ai didi

python - 为每个用户创建唯一的个人资料页面 python

转载 作者:行者123 更新时间:2023-12-01 05:59:19 33 4
gpt4 key购买 nike

我在 python 中使用 Google 应用引擎和 Jinja2 模板引擎。

这可能是一个愚蠢的解决方案,但我有几千个用户的列表,现在他们只能访问自己的个人资料页面,并且必须登录才能执行此操作。我想为每个用户的个人资料页面提供一个唯一的 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,因此正确使用

最佳答案

实现此目的的一个简单方法是为每个用户分配一个唯一的 URL 标识符(或使用他们的键名),这样您就可以通过用户的 ID 查询用户或根据唯一的 URL 标识符属性进行查询。如果需要,您还可以使用他们的 federated_id。

示例:

class User(ndb.Model):
unique_identifier = ndb.StringProperty()
...

class ProfilePage(webapp2.RequestHandler):
def get(self, profile_id):
#profile_id = key name of user
user = User.get_by_id(profile_id)
#profile_id = some unique field
#user = User.query(User.unique_identifier == profile_id).get()
if user:
#Get all posts for that user and render....


app = webapp2.WSGIApplication([('/', MainPage),
('/profile/<profile_id>', ProfilePage),])

关于python - 为每个用户创建唯一的个人资料页面 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11250728/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com