0

データベースで作業を抽象化するために web.py を使用しています。一連の Web ページをループ処理して、関連情報をスクレイピングし、変数compiled_essay に収集します。次に、データベースの列を更新してエッセイを保持します。

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

問題は、これが私が使用している python シェルで 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

コメントの提案に従って、フラグ_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 に答える
0

Python シェルでこれを行っているため、1 つの方法は出力を変数に設定することです。

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 に答える