2014-07-11 3 views
2

Je souhaite utiliser flask pour lire un flux de données important (essentiellement infini) provenant d'un client. Dans la méthode handler pour l'URL, je veux lire des données puis céder, dans une boucle infinie. Est-ce que ça va marcher?Flask: Comment lire une entrée de flux

Pour clarifier les choses, je veux faire quelque chose comme suit:

@app.route("/spectrumdb/stream",methods=["POST"]) 
    def datastream(): 
     get the input stream of the request object. 
     Sit in an infinite loop, incrementally reading the input stream in chunks 
     and processing each chunk yeild the 
     interpreter after each chunk is processed. 

Merci d'avance pour vos réponses.

Ranga

+0

votre question n'est pas clair peut-être vous pouvez vérifier ce http://www.html5rocks.com/en/tutorials/eventsource/basics/ vous pouvez donner le résultat en tant que réponse http://stackoverflow.com/questions/12232304/how-to-implement-server-push-in- flask-framework – Nava

+0

@nava Qu'est-ce qui n'est pas clair dans la question? Peut-être que la réponse n'est pas banale, mais la question me semble bien posée. –

+0

@JanVlcinsky Cette question semble générique. Quel type de réponse spécifique pouvons-nous donner? – Nava

Répondre

0

je crois que la bonne solution est d'utiliser websockets sur le serveur flacon plutôt que d'utiliser HTTP post brut. Merci à tous pour vos réponses. Je vais mettre à jour comment cela se passe.

-1

je recommande la lecture de ce qui suit de la documentation du flacon: http://flask.pocoo.org/docs/0.10/patterns/streaming/

Utilisation de base:

@app.route('/large.csv') 
def generate_large_csv(): 
    def generate(): 
     for row in iter_all_rows(): 
      yield ','.join(row) + '\n' 
    return Response(generate(), mimetype='text/csv') 

vous utilisez essentiellement une fonction de générateur pour générer un grand nombre de données et de le transmettre à l'objet de réponse.

Si vous souhaitez que les données rendent dans votre fichier html, vous devrez probablement utiliser javascript, voici un excellent post de l'intérieur stackoverflow: Streaming data with Python and Flask

+0

Bien que cela puisse théoriquement répondre à la question, [il serait préférable] (// meta.stackoverflow.com/q/8259) d'inclure les parties essentielles de la réponse ici, et de fournir le lien pour référence. –

+0

Ceci est un commentaire plus qu'une réponse. – Jaap