当前位置: 首页 > 面试题库 >

为每个用户python创建唯一的配置文件页面

古棋
2023-03-14
问题内容

我正在使用带有Jinja2模板引擎的python中的google app引擎。

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


 类似资料:
  • 问题内容: 我在Django中有一个扩展的UserProfile模型: 还有一个signal.py: 我通过在我的:中确保信号被注册: 因此,应该为每个注册用户创建一个新的UserProfile,对吗?但事实并非如此。尝试登录时,总是出现“ UserProfile匹配查询不存在”错误,这意味着该数据库条目不存在。 我应该说我使用django-registration,它提供了user_regist

  • 我有以下代码,可以很好地将相关数据复制到我的工作表中。我为J列中的每个唯一部门手动创建每个工作表,然后运行此宏。我想要一个基于J列中的唯一值动态创建工作表的宏。我在网上找到了很好的资源,但当它到达已经为其创建了工作表的行时,我发现的资源似乎会出错。在手动创建其他工作表之前,我包含了我当前使用的代码以及我的清单表的屏幕截图

  • 我的环境很少。有: 本地 开发 测试 问答 LOD 产品 如果config server连接到所有这些服务器,则所有内容都将被清除。 在我的情况下,我需要为每个组配置服务器: 在开发人员控制下 在qa控制下 Near devops控件 组连接到权限和不同的环境。 因此,我需要为每个客户提供如下内容: 哪里 可以访问、和服务器配置; 可以访问配置; 只能访问和配置。 我研究了Spring Boot文

  • 问题内容: 我不知道如何配置我的log4j,以便我的debugLog和reportLog彼此分开(不是附加的)。为什么在以下配置中,reportsLog始终为空? 这是我的Java代码: 问题答案: 尝试以下配置: 然后相应地用Java代码配置记录器: 你要输出到吗?如果不是,请将第一行更改为: 并摆脱界限。

  • 问题内容: 如果我选择一个zip文件,然后右键单击“在此处提取”,则会创建一个包含zip文件名的文件夹,并将zip文件的全部内容提取到其中。 但是,我想通过外壳转换几个zip文件。但是当我这样做 该文件夹未创建,但所有文件都提取到当前目录中。 我看过参数,但是没有这样的参数。我也试过 但是2. $ zipfile和4. $ zipfile 的扩展名必须使用sed删除。如果我做 它不起作用。 如何正

  • 问题内容: 我正在尝试打开文件并创建一个列表,其中每行都从文件中读取。 但是由于这样说,这个示例代码给了我一个错误。我这是什么问题 我如何编写代码以增加InFile中每个新行的列表数? 问题答案: 比这容易得多: 这将返回文件中每一行的列表。