首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python对GAE查询字符串进行URL编码

使用Python对GAE查询字符串进行URL编码
EN

Stack Overflow用户
提问于 2013-11-15 14:09:39
回答 2查看 618关注 0票数 1

我正在用Python在GAE中编写一个在线表达式计算器。我使用查询字符串获取查询,然后计算表达式。例如,对于ishamsample.appspot.com/eval?q=9-6浏览器,应该显示{9-3}{6},这类似于查询工作正常,但问题是+符号。下面ishamsample.appspot.com/eval?q=1+6是我的代码。我试着引用URL

代码语言:javascript
复制
class Eval(webapp2.RequestHandler):
    def get(self):
        q=self.request.get('q')
        q=urllib.quote(q)
        code=eval(compile(q,'<string>', 'eval', __future__.division.compiler_flag))
        self.response.write('{'+q+'}{'+str(code)+'}')

对于该浏览器,输出显示为{1%206}{1}

如何克服这个问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-15 14:20:58

不应该在服务器端将得到的字符串编码为get参数。你应该对它进行解码,GAE为你做到了这一点。无论谁是客户端(此处:您作为用户),在发出HTTP请求之前,都应该对符号进行编码。

您的请求应该是:

代码语言:javascript
复制
http://.../?q=1%2B6

我无法抗拒的一个评论是:EVAL是邪恶的。关于如何使用similar question.,请参考ast.literal_eval(..)

票数 1
EN

Stack Overflow用户

发布于 2013-11-15 14:18:01

  • 是一个特殊的符号,它应该用来替换空格。在url中,您应该有%2B。如果您从文本输入中发布查询,那么查询应该自然地进行编码。与python或GAE无关
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20002944

复制
相关文章

相似问题

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