Python 带有GET参数的GAE ValueError
我试图创建一个简单的应用程序,在给定GET参数的两个输入的情况下返回余数。这些输入将取自url查询 比如说 这将导致答案1,因为2/1的剩余部分=1Python 带有GET参数的GAE ValueError,python,google-app-engine,get,Python,Google App Engine,Get,我试图创建一个简单的应用程序,在给定GET参数的两个输入的情况下返回余数。这些输入将取自url查询 比如说 这将导致答案1,因为2/1的剩余部分=1 a = self.request.get('a') b = self.request.get('b') c = 0 if (int(a)>int(b)): c=int(a)%int(b) else: c=int(b)%int(a) self.response.ou
a = self.request.get('a')
b = self.request.get('b')
c = 0
if (int(a)>int(b)):
c=int(a)%int(b)
else:
c=int(b)%int(a)
self.response.out.write(type(a))
但是,我遇到了以下ValueError问题:ValueError:以10为基数的int()的文本无效:“”
我假设问题在于变量以前是未知的,可能以“”开头,或者如果没有指定,则保持为“”,从而产生错误。任何帮助都将不胜感激 GET参数存储在request.GET中,而不是请求本身,因此您希望将代码更改为
a = request.GET.get('a')
b = request.GET.get('b')
顺便问一下,你在哪里写的代码?什么是自我请求?如果你正在写一个视图,它应该是:
def my_view(request, *args, **kwargs ):
# access request here
未在Django HttpRequest对象上定义request.get
:编辑:
盖伊并不完全是德扬戈。引用:
默认情况下,get()返回空字符串(“”)
因此,您的代码是正确的,但是您应该检查空字符串,而不是检查
a
或b
是否为None
。您必须使用GET dict进行查询,因为您使用的GET
方法是QueryDict
类的成员。此外,在这种情况下,使用get方法提供的默认参数可能会很有用:
try:
a = int(self.request.GET.get('a', 0))
b = int(self.request.GET.get('b', 1))
except TypeError:
# Could not cast to int
# Do what you want
如果使用get_range(请参阅),则可以省略对int的手动转换:
self.request.GET.get_range('a')
self.response.out.write(键入(a))
告诉你什么?不确定你的数学。2 mod 1是0,因为2/1=2不是1.hmmm,因为某种原因,它没有给我任何东西。如果我给出一个超级简单的命令,比如self.response.out.write(a),它就是在响应,它给了我一个。。。你是对的-编辑到上面,但还是一样的错误谢谢!我正在使用coderbuddy和GAE。使用以下定义自我。从google.appengine.ext从google.appengine.ext.webapp.util导入从google.appengine.ext.webapp导入模板类主页(webapp.RequestHandler):def get(self):GAE不是django,您应该更改标记并可能在问题标题中指定GAE。。。查看更新的答案实际上,使用基于类的视图,self.request
是有意义的。请看这里:(但我将把这件事留给你)同意,但是,get
仍然没有在它上面定义:-)诅咒在Django中是正确的,而在GAE中它的工作方式不同,Sean的代码工作得很好这是非常有帮助的!很抱歉,看起来没有问题,但是0和1是预定义的值吗?是的,0
和1
是a
和b
的值,如果在GET
目录中找不到它们,则默认为。