首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 2.5和Python 2.7之间存在严重的GAE兼容性问题

Python 2.5和Python 2.7之间存在严重的GAE兼容性问题
EN

Stack Overflow用户
提问于 2013-03-25 09:45:57
回答 1查看 172关注 0票数 0

对于glowscript.org上的应用程序,我在将GAE从Python2.5更新到Python2.7时遇到了一个严重的问题。我目前正在使用GAE Launcher 1.7.6在Windows上进行本地测试。

用户可以创建名称中包含空格的文件夹,应用程序会将空格转换为'%20‘,以形成数据存储的键;这些文件夹中的文件名也是如此。在glowscript.org上存在着相当数量的用户,他们的数据依赖于这样的密钥。

在尝试本地调试Python2.7版本中的一些奇怪问题时,很明显,GAE数据存储机制发生了重大变化。假设用户创建了一个名为“Test Cases”的文件夹。与glowscript.org一致,此文件夹名称被转换为'Test%20Cases‘,并用作PUT操作中的键:

folder =‘测试用例’f= Folder( parent =用户名,key_name = folder,public=True )# Folder继承自db.Model f.put()

当使用Python 2.7和launcher 1.7.6运行时,我在日志中看到的是'%20‘已经转换回一个空格:

"PUT /api/user/test0324k/folder/Test Cases HTTP/1.1“200 -

当我(在本地)使用Python 2.5和GAE Launcher 1.7.2执行相同的操作时,我在日志中看到:

"PUT /api/user/test0324k/folder/Test%20Cases HTTP/1.1“200 -

如果我部署到web上,用户将收到错误,因为他们的数据包含包含'%20‘的密钥,而现在将无法访问这些密钥。我不能继续使用Python2.5版本,因为它已经被弃用了,很快就会消失。我该怎么做才能在不破坏很多人的工作的情况下继续前进呢?

EN

回答 1

Stack Overflow用户

发布于 2013-03-25 11:44:48

“我不能继续使用Python 2.5版本,因为它已经被弃用了,很快就会消失。”

我们在2013年3月8日的blog post中宣布了Python2.5的弃用,其中引用了我们的弃用政策(https://developers.google.com/appengine/terms的7.2节)。我建议你读一读。这一部分很短,而且切中要害。

您在Python2.5和2.7堆栈之间看到的任何意外变化都值得报告。请通过normal channels提交报告。(您几乎可以复制/粘贴您在此处编写的内容。)

这就是说(这是我个人的观点,不是谷歌的),创建一个包含%20的键,然后把它放到一个url中,而不是逃脱它,这是非常困难的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15606430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档