2012-07-22 25 views
0

我正在使用web.py來抽象數據庫的工作。我循環了一系列網頁,以便將相關信息收集到變量compiled_essay中。然後我更新數據庫中的一列來保存這篇文章。在web.py中使db.update的輸出靜音

for update_number in range(len(user_list)):  
    db.update('users',where="username = '%(user)s'"%{"user":username},essay_data=compiled_essay) 

問題是這樣結束了在我使用Python Shell中打印出DB命令:

0.0 (update_number): UPDATE users SET essay_data = 'lots_of_text' WHERE username = 'the_user' 

我的問題是我怎麼能沉默db.update命令,以便它doesn」爲每次更新打印大量文本。

回答

3

打印僅在開發模式下啓用。

您可以通過在創建數據庫之前添加以下行來顯式禁用它。

web.config.debug = False 

,或者通過設置:

db.printing = False 
0

因爲你是在Python殼這樣做,一個辦法是將輸出設定爲一個變量:

for update_number in range(len(user_list)):  
    x = db.update('users',where="username = '%(user)s'"%{"user":username},essay_data=compiled_essay) 
+0

沒有骰子,我得到幾乎相同的輸出。 x最終保存一個int。我相信這是一個成功的代碼。 – Sevenless 2012-07-22 17:14:47

+0

然後你使用的模塊必須自己打印這個輸出,你可以給這個模塊一個類似debug = False的參數嗎? – trauzti 2012-07-22 17:18:16

+0

該標誌是_test = True。感謝您讓我走上正軌。 – Sevenless 2012-07-22 17:30:07

0

按照註釋中的建議,_test=True沉默的輸出的標誌。

db.update('users',where="username = '%(user)s'"%{"user":username},essay_data=compiled_essay,_test=True) 
0

web.config.debug =假仍然沒有幫助。還有一些失敗。

註釋掉行文件: C:\ Python27 \ LIB \站點包\網絡\ httpserver.py

行:

print >> outfile, utils.safestr(msg) -> 
#print >> outfile, utils.safestr(msg)