gpt4 book ai didi

python - 自 GAE 从 python 2.5.2 + webapp 迁移到 2.7 + webapp2 以来,Web 应用程序不会自动重新加载

转载 作者:太空宇宙 更新时间:2023-11-03 18:47:46 25 4
gpt4 key购买 nike

我尝试从这个 google GAE 教程视频中迁移旧的留言簿示例: http://www.youtube.com/watch?gl=DE&hl=de&v=bfgO-LXGpTM

问题:当我通过 self.redirect('/') 跳转到主类时,页面不会自动重新加载。我需要手动重新加载浏览器窗口(例如通过 F5)才能查看最新的留言簿条目,这是在 MakeGuestbookEntry 类中完成的。

使用 python 2.5.2 + webapp 这个问题不存在。

这是Python代码文件main.py:

#!/usr/bin/env python
Import OS, says
import wsgiref.handlers
import webapp2
from google.appengine.ext import db
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext.webapp import template

class guestbook(db.Model):
message = db.StringProperty(required=True)
when = db.DateTimeProperty(auto_now_add=True)
who = db.StringProperty()

class ShowGuestbookPage(webapp2.RequestHandler):
def get(self):
# Read from the Datastore
shouts = db.GqlQuery('SELECT * FROM guestbook ORDER BY when DESC')
values = {'shouts': shouts}
self.response.out.write(template.render('main.html', values))

class MakeGuestbookEntry(webapp2.RequestHandler):
def post(self):
shout = guestbook(message=self.request.get('message'), who=self.request.get('who'))
# Write into the datastore
shout.put()
self.redirect('/')

app = webapp2.WSGIApplication([('/', ShowGuestbookPage),
('/make_entry', MakeGuestbookEntry),
debug=True)

def main():
run_wsgi_app(app)

if __name__ == "__main__":
main()

这是html页面main.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<title>Simple Guestbook with the Google App Engine</title>
</head>
<body>

<h3>Simple Guestbook with the Google App Engine</h3>

{% for shout in shouts %}
<div>
{% if shout.who %}
<b>{{shout.who}}</b>
{% else %}
<b>Anonymous</b>
{% endif %}
sagt:
<b>{{shout.message}}</b>
</div>
{% endfor %}

<p>

<form action="make_entry" method="post" accept-charset="utf-8">
Name: <input type="text" size="20" name="who" value="" if="who">
Nachricht: <input type="text" size="20" name="message" value="" if="message">
<input type="submit" value="Absenden">
</form>

</body>
</html>

感谢您的帮助。最好的问候

最佳答案

那个教程已经很老了。建议您使用Getting Started guide中最新的留言簿教程。 .

出现此行为的原因(尤其如果您位于开发服务器中)是因为 GAE 现在模拟最终一致性。基本上,这意味着您新添加的留言簿条目不会立即出现在您的应用程序运行的所有服务器上。有些用户可能会立即看到它,有些可能不会。确保您获得最新数据的一个好方法是刷新页面并强制应用程序加载它......但当然您不能指望用户喜欢这样:P

新的留言簿教程改用祖先查询,从而强制执行强一致性。换句话说,用户将立即看到更新,无需刷新页面!您可以阅读更多关于强一致性的内容 here .

关于python - 自 GAE 从 python 2.5.2 + webapp 迁移到 2.7 + webapp2 以来,Web 应用程序不会自动重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19117061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com