At 03:53 PM 10/4/2007 +0200, Manlio Perillo wrote: >Phillip J. Eby ha scritto: > > At 10:57 AM 10/4/2007 +0200, Manlio Perillo wrote: > >> Phillip J. Eby ha scritto: > >> > [...] > >> >> There is a problem here: a WSGI gateway is not allowed to send headers > >> >> until the app_iter yields a non empty string or the iterator is > >> exausted. > >> > > >> > Argh. You're right. I forgot about that bit. It has been a few too > >> > many years since I worked on the spec. :) > >> > > >> > >> 07-Dec-2003! > >> And yet it seems that WSGI is not pervasively used. > > > > What do you mean? Can you name a popular Python web framework or > > library that doesn't either use or support WSGI? > > > >Django, as an example, uses WSGI "only as a backend".
That's still WSGI *support*. >Django design is not based on WSGI, it is WSGI that is adapted for Django. Yep - which is why we need WSGI 2. WSGI 1 achieved all its goals *except* for being easy to write middleware and build frameworks on it. It should be easier to use WSGI than to not use it. > > That won't be possible in WSGI 2.0 - it's a purely synchronous API. > >This is the reason why I don't like WSGI 2.0 :). > >However I have to admit that developing a full asynchronous application >is not easy, notably when we have to interact with a database and a >transaction. Right - in practice, there is not enough of a common async API for Python to make it practical to implement asynchronousness in WSGI itself. At least, in the last three years nobody has made a practical proposal for it. In practice, if you want to write a fully-async web app you must use Twisted or a similar framework and commit to using its API. You can of course still use WSGI components, but your application will not be able to run on a server that doesn't provide your async framework's API. >It is really so hard to implement WSGI 1.0 and to write middlewares for it? Absolutely. Most of the time I see someone post example middleware code, it is not WSGI compliant in some fashion. >I think that WSGI 2.0 should simply correct some problems in WSGI 1.0, The single biggest problem in WSGI 1.0 is start_response() and write(). They were hacks to support legacy applications and frameworks. >It's very unfortunate that the WSGI implementation in Twisted just uses >threads instead of doing some experimentation. You're making the assumption that no experimentation was done. Check the Web-SIG archives from three years ago and see the discussions about async APIs. _______________________________________________ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com