2009-08-19 50 views
0

當我遇到一個奇怪的問題時,我一直在使用mod_python,python和SQL Alchemy創建一個網站:當我查詢所有記錄的數據庫時,它返回正確的結果集;然而,當我刷新頁面時,它會向我返回一個結果集,並附加相同的結果集。當我刷新頁面時,我將更多的結果集疊加在彼此之上。mod_python的問題?

例如:

第一頁負載:10個結果

第二頁負載:20個結果(每兩個)

第三頁負載:30個結果(各三個的)

等...

這是一些ü nodlying問題與mod_python?我不記得在使用mod_wsgi時遇到這個問題。

+0

你能給一些代碼片段嗎?可能有幫助。 – balpha 2009-08-19 16:12:26

回答

0

這不是我所聽說過的,但是如果沒有一些代碼來看看就不可能說出來。

也許您將結果集列表初始化爲全局或共享成員,然後在調用應用程序時將結果附加到結果集中而不將其重置爲空?意外重用列表的經典方式是將一個默認參數值放入函數中。

(同樣可能發生在課程的mod_wsgi的。)

+0

這是一個很好的提示,我在查詢後將模型的「結果」列表設置爲空,但我會仔細檢查並確保不是這種情況。 – 2009-08-19 16:30:34

+0

問題是查詢在對象的構造函數內部,只需將其移出並將結果存儲在方法內的局部變量中即可解決問題。謝謝您的幫助! – 2009-08-19 18:30:36

0

我不知道任何你正在使用的技術。但是,在您認爲這可能是您使用的軟件包中可能存在的錯誤之前,您必須考慮一件事。

Occam's razor.

基本上,「當你有兩個相互競爭的理論,使一模一樣的預測,簡單的一個是更好的。」

您的兩個可能的主要理論是,您正在使用的組件中存在一個錯誤(許多人使用)或代碼中存在錯誤。機會是(並且我很抱歉)你的代碼中存在一個錯誤。

我用這個想法和我自己的代碼,每次出現問題,它都變成了我的代碼。

希望其他人可以引導你到錯誤,你可能想要發佈問題代碼。您可能不會清除結果集或某個變量 - 持續時間超過您的預期。

+0

在我的代碼中是一個錯誤:) – 2009-08-19 18:33:07

+0

我很高興你解決了它。 :-) – 2009-08-19 18:38:56