0

我正在使用 web.py 来抽象使用数据库。我遍历一系列网页以将相关信息抓取并收集到变量compiled_essay中。然后我更新数据库中的一列来保存这篇文章。

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 命令静音,这样它就不会为每次更新打印大量文本。

4

4 回答 4

4

打印仅在开发模式下启用。

您可以通过在创建数据库之前添加以下行来显式禁用它。

web.config.debug = False

或者,通过设置:

db.printing = False
于 2012-07-23T01:34:41.997 回答
0

由于您在 Python shell 中执行此操作,因此一种方法是将输出设置为变量:

for update_number in range(len(user_list)):    
    x = db.update('users',where="username = '%(user)s'"%{"user":username},essay_data=compiled_essay) 
于 2012-07-22T17:11:18.950 回答
0

根据评论中的建议,该标志_test=True使输出静音。

db.update('users',where="username = '%(user)s'"%{"user":username},essay_data=compiled_essay,_test=True) 
于 2012-07-22T17:29:45.233 回答
0

web.config.debug = False 仍然没有帮助。一些输出仍然完成。

注释掉文件中的行:C:\Python27\Lib\site-packages\web\httpserver.py

线:

print >> outfile, utils.safestr(msg) ->
#print >> outfile, utils.safestr(msg)
于 2014-11-01T18:30:56.010 回答