私は例を確認してGoogleは、どのようにPythonを使用して開始するかを示しています。特にここにコードが掲載されています。彼らは、コメントを保存しているユーザーがログインしている場合、我々はユーザーを保存Python AppEngine;ユーザー情報を取得し、パラメータを投稿しますか?
class Guestbook(webapp.RequestHandler):
def post(self):
greeting = Greeting()
if users.get_current_user():
greeting.author = users.get_current_user()
greeting.content = self.request.get('content')
greeting.put()
self.redirect('/')
;:http://code.google.com/appengine/docs/python/gettingstarted/usingdatastore.html
私は傾くしたい事はここに、ということです我々は、DBの外にそれを得るとき、私たちが実際にそのここをチェックし、その空でない場合:
if greeting.author:
self.response.out.write('<b>%s</b> wrote:' % greeting.author.nickname())
else:
self.response.out.write('An anonymous person wrote:')
をだから私は希望のものを、このように、情報を取得するために、Userオブジェクトを使用することです:
class Guestbook(webapp.RequestHandler):
def post(self):
user = users.get_current_user()
if user:
greeting = Greeting()
if users.get_current_user():
greeting.author = users.get_current_user()
greeting.content = self.request.get('content')
greeting.put()
self.redirect('/')
else:
self.redirect(users.create_login_url(self.request.uri))
私はそのコードで何をしたいのですか?ログインしていない場合はログインURLにユーザを送ります。彼が投稿したものを元に戻って実際に投稿します。しかし、何が起こるかということは、それがその行動にも及ばないということです。cozは何のポストでもありません。 私はセッションに何かを入れてゲストブックのアクションを確認することができますが、誰かがより良い解決策を見出せるかどうか確認したいと思っていました!
おかげ
このソリューションにはいくつかの大きな注意点があります.GETは長いデータでは貧弱な選択肢であり、それらは冪等であることを意図しています。偶数以外のもの(ゲストブックのエントリなど)を提出すると、XSRFの問題が発生します。 –
@Nick、良い点 - 「どこかに隠れたペイロードがある」というアプローチも考慮する価値があります(例えば、データが長くなる可能性があるときや、「ログインユーザー」の条件にもかかわらず潜在的な偽造が問題になるときなど)。 GETが受け入れられる)。 –