2011-02-09 3 views
3

J'essaie de faire une application App Engine relativement simple pour aller chercher quelques pages sur une base quotidienne et publier les données sur un serveur CouchDB. J'ai le code suivant dans mon application App Engine (avec la bibliothèque CouchDB-python):Bizarre accumulation de données HTTP sur App Engine avec Python et CouchDB

# 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_one et file_two sont les résultats des demandes de UrlFetch antérieures.

Maintenant, tout cela fonctionne bien, sauf que la première pièce jointe est également postée avec le price_data JSON ({ 'source': 'blah', 'date': 'date here'}) au début du fichier texte prices_one, et la seconde attache obtient préfixé à la fois la price_data JSON ainsi que l'ensemble du fichier texte prices_one, suivi par le fichier prices_two.txt réel.
Je suis sûr que si j'essayais d'ajouter une troisième pièce jointe, elle afficherait toutes les données accumulées à celle-ci.
Si je vais sur CouchDB pour regarder le fichier dans la base de données, c'est le fichier complet, juste avec { 'source': 'blah', 'date': 'date here'} au tout début.

Des idées sur ce qui pourrait inciter App Engine à renvoyer les données précédentes à chaque nouveau POST HTTP? Aussi, je devrais noter qu'il faisait la même chose avant que j'ai commencé à utiliser la bibliothèque de couchdb-python, ainsi il semble être quelque chose lié à App Engine que je ne comprends pas.

Répondre

1

Au cours de votre enquête, essayez d'utiliser une bibliothèque HTTP brute au lieu d'une bibliothèque CouchDB. Je suggère la bibliothèque App Engine native (urlfetch ou peut-être urllib2). L'API CouchDB est très simple, vous n'aurez pas de difficulté.

Y a-t-il une différence dans le résultat?

+0

J'ai essayé à nouveau avec urlfetch et il semble fonctionner, donc apparemment je me suis trompé d'avoir le problème avant d'utiliser la bibliothèque couchdb. Merci! – Quetzal

Questions connexes