From d3307cdfa52246354527995722fd652ed9ffa2e8 Mon Sep 17 00:00:00 2001 From: benoitc Date: Sat, 14 May 2016 17:29:01 +0200 Subject: [PATCH] add an app example using readline --- examples/readline.py | 45 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 examples/readline.py diff --git a/examples/readline.py b/examples/readline.py new file mode 100644 index 00000000..75d18f31 --- /dev/null +++ b/examples/readline.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 - +# +# This file is part of gunicorn released under the MIT license. +# See the NOTICE for more information. +# +# Simple example of readline, reading from a stream then echoing the response +# +# Usage: +# +# Launch a server with the app in a terminal +# +# $ gunicorn -w3 readline:app +# +# Then in another terminal launch the following command: +# +# $ curl -XPOST -d'test\r\ntest2\r\n' -H"Transfer-Encoding: Chunked" http://localhost:8000 + + + +from gunicorn import __version__ + + +def app(environ, start_response): + """Simplest possible application object""" + status = '200 OK' + + response_headers = [ + ('Content-type', 'text/plain'), + ('Transfer-Encoding', "chunked"), + ('X-Gunicorn-Version', __version__), + #("Test", "test ั‚ะตัั‚"), + ] + start_response(status, response_headers) + + body = environ['wsgi.input'] + + lines = [] + while True: + line = body.readline() + if line == b"": + break + print(line) + lines.append(line) + + return iter(lines) \ No newline at end of file