2017-07-20 2 views
0

エラーを除いてフラッシュ(メッセージ)を返す方法を理解するのに苦労しています。Flask - エラーとフラッシュのメッセージを受け入れる

クエリに対する応答として

「『NoneType』オブジェクトが添字化ではありません」。私はMongoDBのを探していますし、名前が存在しない場合、私は

取得flash("Name {} not found!.format(searchName))と回答したいので、ユーザーは検索結果が何も返されなかったことを知っていて、もう一度やり直すことができます。

私は

if searchName == None: 
    flash("Name {} not found!.format(searchName)) 
else: 
    do something else 

プラスその種の非常に他のバリエーションをやってみました。しかし、クエリが存在しない場合は、同じエラーが発生するたびに発生します。すべての、または特定のエラーを処理し、希望の応答を返す良い方法がありますか?私は特にHTTPエラーではないPythonの例外を処理するために探しています。ありがとう!

+0

例外をスローしている実際のコードは何ですか? –

+0

私はそれを下の答えで分かりました。この問題はPymongoのクエリにありました。結果を見つけられなかったときには、それを除いてtryを使って例外をスローしました。 – BrettJ

+0

私が尋ねた理由は、一致するレコードが見つからないときにPyMongoクエリが例外をスローしないためです。あなたが持っているエラーは、一般的に 'None'値を持つオブジェクトからメソッドにアクセスするPythonコードに関連しています。たとえば、 'variable = None'の場合、' variable [1] 'にアクセスしようとしています。 –

答えて

1

あなたのMongoDB検索のように聞こえるのは例外を投げることです。 try ... exceptでラップして、例外ハンドラでflash()を呼び出してください。

+0

ありがとう!そのような単純な解決策は、私に非常にストレスを与えました。時には私はそれを思い描く。 – BrettJ

関連する問題