2

새로 고침하지 않습니다GAE 데이터 저장소가

import os 

from google.appengine.ext.webapp import template 
from google.appengine.ext import db 
import webapp2 

#def testkey(): 
# return db.Key.from_path('test', 'test') 

class TestEntity(db.Model): 
    testkey = db.StringProperty(multiline=False) 
    testvalue = db.StringProperty(multiline=False) 

class TestRefreshProblem(webapp2.RequestHandler): 
    def get(self): 
    testquery = TestEntity.all()#.ancestor(testkey()) 
    entities = testquery.run() 
    template_values = { 
     'entities': entities, 
     } 
    path = os.path.join(os.path.dirname(__file__), 'index.html') 
    self.response.out.write(template.render(path, template_values)) 

class TestRefreshProblemPost(webapp2.RequestHandler): 
    def post(self): 
    # testEntity = TestEntity(parent=testkey()) 
    testEntity = TestEntity() 
    testEntity.testkey = self.request.get('testkey') 
    testEntity.testvalue = self.request.get('testvalue') 
    testEntity.put() 
    self.redirect('/') 

app = webapp2.WSGIApplication([ 
    ('/', TestRefreshProblem), 
    ('/pst', TestRefreshProblemPost) 
], debug=True) 

과 index.html을 수 있습니다 :

<html> 
    <body> 
    <table border=0> 
     <tr><td width=200>Key</td><td width=200>Value</td></tr> 
     {% for entity in entities %} 
      <tr> 
      <td width=200>{{ entity.testkey|escape }}</td> 
      <td width=200>{{ entity.testvalue|escape }}</td> 
      </tr> 
     {% endfor %} 
     </table> 
    <form action="/pst" method="post"> 
     <table> 
     <td ><input type="text" name="testkey" size=30/></td> 
     <td ><input type="text" name="testvalue" size=30/></td> 
     <tr><td><input type="submit" value="Add entity"></td></tr> 
     </table> 
    </form> 
    </body> 
</html> 

문제는 (더미) 조상을 사용하여 사라집니다 (re : #가있는 행). 이상한 행동 인 것처럼 보입니다 ... 조상없이 해결 될 수 있습니까?

답변

6

eventual consistency 때문에 예상 된 동작입니다.

실제로는 개발 서버를 실행 중이므로 실제 일관성을위한 시뮬레이션 일뿐입니다. 실제 프로덕션 시스템에서는 결과를 예측할 수 없습니다. 솔루션은 동일합니다.

+0

고마워요. 이제 이해가된다 ;-) – rimvanvliet