Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为用户创建唯一的配置文件页面_Python_Google App Engine - Fatal编程技术网

Python 为用户创建唯一的配置文件页面

Python 为用户创建唯一的配置文件页面,python,google-app-engine,Python,Google App Engine,我已经创建了一个相当强大的应用程序。我已经实现了一个个人资料页面系统。现在,我是一个相当大的'noob'当谈到编程和应用程序引擎,所以在这里要温柔,(请)。因此,我知道您可以将参数传递到url示例/profile/。我只是不完全确定如何在我的代码或其背后的思想过程中实现它 这将是我的数据库: class User(db.Model): name = db.StringProperty(required = True) pw_hash = db.StringProperty(req

我已经创建了一个相当强大的应用程序。我已经实现了一个个人资料页面系统。现在,我是一个相当大的'noob'当谈到编程和应用程序引擎,所以在这里要温柔,(请)。因此,我知道您可以将参数传递到url示例/profile/。我只是不完全确定如何在我的代码或其背后的思想过程中实现它

这将是我的数据库:

class User(db.Model):
    name = db.StringProperty(required = True)
    pw_hash = db.StringProperty(required = True)
    email = db.StringProperty(required = True)
这是我的配置文件处理程序:

class Profile(MainHandler):
    def get(self):
        if self.user:
            current_user = str(self.user.name)
            key='ag5kZXZ-c3VpdGVnYW1lcnINCxIHSW1hZ2VkYhglDA '
            imgs  = db.GqlQuery("select * from Imagedb WHERE name =:1", current_user)
            for img in imgs:
                key = img.key() # this is the key
            self.render('profile.html', profile_image = key ,username = self.user.name, email = self.user.email, first_name = self.user.first_name, last_name = self.user.last_name, country = self.user.country, prov_state = self.user.prov_state, city_town = self.user.city_town)
        else:
            self.redirect('/register')
该配置文件目前还实现了一个显示图片系统。我的目标是基本上建立一个你称之为社交网络的东西。AKA,每个配置文件上都有博客,还有一个消息系统,以及一些其他系统

我感谢所有的帮助。即使它们只是你的想法/意见。我有我的网站上传到一个域,所以它可能会显示给你,但我真的想保持它的秘密,直到它完成:P

非常感谢

编辑:

这是我在帖子中看到的解决方案,但是我不确定如何实施它

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),])
类用户(ndb.Model):
唯一_标识符=ndb.StringProperty()
...
类配置文件页(webapp2.RequestHandler):
def get(自我,配置文件id):
#profile\u id=用户的密钥名
user=user.get\u by\u id(profile\u id)
#profile\u id=某个唯一字段
#user=user.query(user.unique\u identifier==profile\u id.get())
如果用户:
#获取该用户的所有帖子并呈现。。。。
app=webapp2.WSGIApplication([(“/”,主页),
(“/profile/”,ProfilePage),])

您希望将配置文件id作为URL的一部分,并希望将该id传递给您的请求处理程序。对应用程序定义的此更改定义了“路由”和RequestHandler对象之间的映射:

app = webapp2.WSGIApplication([('/', MainPage),
                               ('/profile/<profile_id>', ProfilePage),])
app=webapp2.WSGIApplication([('/',主页),
(“/profile/”,ProfilePage),])
通常,这些映射是一个URL或URL正则表达式,带有一些用于标识变量的语法/约定

在这种情况下,
'/profile/'
是一个
路由模板
,它使用名称
profile\u id
来匹配在第二个路径段中传递的任何内容

任何匹配项都将作为位置参数传递给RequestHandler函数。这是由框架处理的,您只需要为路由中的每个
块添加参数

发布的解决方案建议在用户模型中添加唯一的\u标识符字段的原因是存储规范的用户\u id/配置文件\u id。假设您只使用一个整数来表示唯一的用户标识


您的路由模板可以更改为仅匹配整数,如
'/profile/'
,用户的url将类似于
/profile/1024/

我发现您当前的标记集非常通用且不具描述性。从他们身上我看不出你在使用什么编程语言,什么框架,或者你在谈论基于web的应用程序。更好的标签可能会吸引更好的答案。谢谢你的提示。我已经相应地更新了。谢谢。我会看看我能做什么。好吧,我的模板中有所有的配置文件按钮链接到正确的页面,即(localhost:8080/profile/admin)。我将当前_用户(我的标识符按用户名称)传递到配置文件请求处理程序“get(self,current_user)”,该处理程序映射到(“/profile/”,profile)。用户\u正在成为用户创建的我的注册表表达式。我得到一个404错误。我的映射出现了问题…你应该在问题中包含你当前的“app=”行,以便人们可以看到你使用的确切路线。我认为其他路线不会以任何方式应用于我的个人资料页。。。我在上面的消息中粘贴了配置文件路由。请暂时尝试将路由设置为常量:(“/profile/admin/”)还请记住尾部斜杠很重要,因此在浏览器中输入URL时一定要指定它。