2011-02-09 6 views
3

比較的単純なApp Engineアプリケーションを作成して、日常的にいくつかのページを取得し、データをCouchDBサーバーに送信しようとしています。私は(CouchDBの-pythonのライブラリとの)私のApp Engineアプリケーションに次のコードを持っている:PythonとCouchDBを使用したApp Engineでの奇妙なHTTPデータの蓄積

# post the result to CouchDB 
    price_data = { 
     'source': 'blah', 
     'date': str(result.headers['date']) 
    } 
    db.save(price_data) 
    db.put_attachment(price_data, file_one, 'prices_one.txt') 
    db.put_attachment(price_data, file_two, 'prices_two.txt') 

file_onefile_twoは、以前のURLfetch要求からの結果です。

は今、このすべては、最初の添付ファイルがprices_one、テキストファイルの先頭にprice_data JSON ({ 'source': 'blah', 'date': 'date here'})に掲載されることを除いて正常に動作し、第二の付着が続く、price_data JSONだけでなく、全体prices_oneテキストファイルの両方が付いてます実際のprices_two.txtファイル
3番目の添付ファイルを追加しようとすると、蓄積されたすべてのデータがその添付ファイルに書き込まれます。
DB内のファイルを見るためにCouchDBを実行すると、ファイル全体が表示されます。最初は{ 'source': 'blah', 'date': 'date here'}となります。

App Engineで新しいHTTP POSTを実行するたびに以前のデータが再送信されてしまう原因は何ですか?また、couchdb-pythonライブラリを使用する前に同じことをしていたことに注意してください。App Engineに関連していると思われます。

答えて

1

調査中、CouchDBライブラリではなく、生のHTTPライブラリを使用してみてください。ネイティブのApp Engineライブラリ(urlfetchまたはおそらくurllib2)をお勧めします。 CouchDB APIは非常にシンプルですが、難しさはありません。

結果に違いはありますか?

+0

私はurlfetchをやり直してみましたが、うまく動作しているようですので、couchdbライブラリを使用する前に問題があると誤解されました。ありがとう! – Quetzal

関連する問題