2009-08-19 5 views
0

私は奇妙な問題に遭遇したときに、mod_python、python、SQL Alchemyを使ってウェブサイトで作業していました。すべてのレコードをデータベースに照会すると、正しい結果セットが返されます。しかし、ページをリフレッシュすると、同じ結果セットが追加された結果セットが返されます。私はより多くの結果セットを積み重ねて、ページをさらにリフレッシュします。例えばmod_pythonの問題?

最初のページのロード:10結果

第2ページ荷重:20結果(各二)

第3ページ荷重:30の結果(各3個)

等...

が、これはいくつかのuですmod_pythonのnderlyingの問題?私はmod_wsgiを使用しているときにこれを実行していることを思い出しません。

+0

いくつかのコードスニペットを付けることはできますか?役立つかもしれません。 – balpha

答えて

0

私がこれまで聞いたことはありませんが、見るべきコードなしでは伝えるのは不可能です。

結果セットリストをグローバルメンバーまたは共有メンバーとして初期化し、アプリケーションを空にリセットせずに呼び出されたときに結果を追加することはありますか?誤ってリストを再利用する古典的な方法は、関数にデフォルトの引数値を入れることです。

(同じコースのmod_wsgiの中で発生する可能性があります。)

+0

これは良いヒントですが、私はモデルの "results"リストをクエリの後に空にしていましたが、これを再確認し、そうでないことを確認します。 –

+0

問題は、オブジェクトのコンストラクタの内部にクエリーを配置し、単純に移動してメソッド内のローカル変数に結果を格納することで問題を解決しました。助けてくれてありがとう! –

0

私はあなたが使用している技術のいずれかを知りません。しかし、使用しているパッケージにバグがある可能性があると考える前に、一つのことを考えなければなりません。

Occam's razor.

基本的に、「あなたはまったく同じ予測を行う2つの競合する理論を持っている場合、単純に一つは良いです。」

あなたの2つの主要な理論は、使用しているコンポーネント(多くの人が使用する)にバグがあり、コードにバグがあることです。コードにバグがある可能性があります(そしてごめんなさい)。

私は自分のコードでこのアイデアを使用し、問題が発生するたびに自分のコードになりました。

うまくいけば、他の人があなたをバグに導き、問題のコードを投稿したいと思うかもしれません。あなたは結果セットをクリアしていないかもしれません - 変数 - 何かがあなたが期待するよりも長く保持されています。

+0

挑戦は私のコードのバグでした:) –

+0

私はあなたがそれを解決してうれしいです。 :-) –