0

かなり頑丈なアプリを作成しました。プロファイルページシステムを実装しています。さて、プログラミングとアプリエンジンに関しては、私はかなり大きな「初心者」です。ここでは優しくしてください(お願いします)。したがって、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),])
4

1 に答える 1

1

プロファイルIDをURLの一部にすることを検討しており、そのIDをリクエストハンドラーに渡します。アプリケーション定義へのこの変更は、「routes」オブジェクトとRequestHandlerオブジェクト間のマッピングを定義しています。

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

通常、これらのマッピングは、変数を識別するための構文/規則を備えたURLまたはURL正規表現です。

この場合'/profile/<profile_id>'route template、名前profile_idを使用して、2番目のパスセグメントで渡されるものと一致します。

一致するものはすべて、位置引数としてRequestHandler関数に渡されます。<name[:regex]>これはフレームワークによって処理されます。ルート内の各ブロックに引数を追加する必要があります。

投稿されたソリューションがunique_identifierフィールドをUserモデルに追加することを推奨する理由は、正規のuser_id/profile_idを格納するためです。整数を使用して一意のユーザーIDを表すとします。

ルートテンプレートは、のよう'/profile/<user_id:\d+>/'に整数のみに一致するように変更でき、ユーザーのURLはのようになります/profile/1024/

于 2012-07-21T19:09:04.137 に答える