【问题标题】:google apps engine django form pyamf谷歌应用引擎 django 表单 pyamf
【发布时间】:2025-12-29 18:20:07
【问题描述】:
我的 flash-pyamf-gae 运行良好。
现在我想按照谷歌教程创建一个经典的 Django 表单:http://code.google.com/appengine/articles/djangoforms.html
我做到了,但是当我发布表单中输入的数据时,我从 pyamf 收到以下消息:
格式错误的流 (amfVersion=110)
400 Bad Request 请求正文是
无法成功解码。
追溯:
回溯(最近一次通话最后一次):
文件
"C:\Users\Giil\Documents\dev\gae\moviesbuilder\pyamf\remoting\gateway\google.py",
第 79 行,在帖子中
logger=self.logger, timezone_offset=timezone_offset)
文件
"C:\Users\Giil\Documents\dev\gae\moviesbuilder\pyamf\remoting_init_.py",
第 640 行,在解码中
msg.amfVersion) DecodeError: Malformed stream (amfVersion=110)Malformed stream (amfVersion=110)
现在这对我来说很有意义,因为我从表单发送的不是 amf。我该如何处理?
注意:我觉得问题来自我的 app.yaml
我没有特殊的处理程序来告诉应用程序以不同的方式处理此表单...格式错误的流 (amfVersion=110)
【问题讨论】:
标签:
django
google-app-engine
google-apps
pyamf
【解决方案1】:
我用自己的方式解决了这个问题:
我的表单(帖子指向另一个功能,而不仅仅是谷歌示例中的“/”):
class Projects(webapp.RequestHandler):
def get(self):
self.response.out.write('<html><body>'
'<form method="POST" '
'action="/ProjectsPage">'
'<table>')
self.response.out.write(ProjectForm())
self.response.out.write('</table>'
'<input type="submit">'
'</form></body></html>')
然后我需要写入数据存储并显示列表:
class ProjectsPage(webapp.RequestHandler):
#getting data and saving
def post(self):
data = ProjectForm(data=self.request.POST)
if data.is_valid():
# Save the data, and redirect to the view page
entity = data.save(commit=False)
entity.added_by = users.get_current_user()
entity.put()
self.redirect('/projects.html')
else:
# Reprint the form
self.response.out.write('<html><body>'
'<form method="POST" '
'action="/">'
'<table>')
self.response.out.write(data)
self.response.out.write('</table>'
'<input type="submit">'
'</form></body></html>')
#display list of projects
def get(self):
query = db.GqlQuery("SELECT * FROM Project WHERE added_by=:1 ORDER BY name",users.get_current_user())
template_values = {
'projects': query,
}
path = os.path.join(os.path.dirname(__file__), 'templates/projects.html')
self.response.out.write(template.render(path, template_values))