奇妙な問題が発生しています。ブール値を返すメソッドがあります。次に、フロントエンドからメソッドを直接呼び出すことができないため、その関数の結果を再度返す必要があります。これが私のコードです:
# this uses bottle py framework and should return a value to the html front-end
@get('/create/additive/<name>')
def createAdditive(name):
return pump.createAdditive(name)
def createAdditive(self, name):
additiveInsertQuery = """ INSERT INTO additives
SET name = '""" + name + """'"""
try:
self.cursor.execute(additiveInsertQuery)
self.db.commit()
return True
except:
self.db.rollback()
return False
これは例外をスローします:TypeError( "'bool' object is not iterable"、)
私はブール値を「反復」しようとするのではなく、返すためだけにこのエラーを受け取りません。
Booleanまたはintの代わりに文字列を返すと、期待どおりに機能します。ここで何が問題になるのでしょうか?
トレースバック:
Traceback (most recent call last):
File "C:\Python33\lib\site-packages\bottle.py", line 821, in _cast
out = iter(out)
TypeError: 'bool' object is not iterable
トレースバックを見てください:
_Traceback (most recent call last):
File "C:\Python33\lib\site-packages\bottle.py", line 821, in _cast
out = iter(out)
TypeError: 'bool' object is not iterable
_
あなたのコードは値を反復していませんが、それを受け取るコードは反復しています。
解決策は、イテラブルを返すことです。 boolを文字列に変換する(str(False)
)か、タプルで囲む(_(False,)
_)ことをお勧めします。
常にトレースバックを読んでください。それは正しく、役に立ちます。