Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 带有GET参数的GAE ValueError_Python_Google App Engine_Get - Fatal编程技术网

Python 带有GET参数的GAE ValueError

Python 带有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

我试图创建一个简单的应用程序,在给定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.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
目录中找不到它们,则默认为。