🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.python
Article #45

Re: Dlaczego lubicie Pythona?

#45
From: piter
Date: Sat, 30 Nov 2002 13:33
69 lines
3586 bytes
Użytkownik "Jacek Konieczny" <jajcus@bnet.pl> napisał w wiadomości
news:slrnauh23g.khr.jajcus@nic.bnet.pl...
> In article <as9bq1$jgj$1@news.tpi.pl>, piter wrote:
> > a generalnie ma wprost bajeczny support ze strony biblioteki do robienia
> > aplikacji sieciowych, vide Socket, ServerSocket (threading/forking
model),
> > urllib, httplib, simpleHTTPServer (ten ostatni w doslownie 10 linijek
kodu
> > umozliwia zrobic wlasny server HTTP)
> A ja się na tych bibliotekach zawiodłem. Zrobienie aplikacji, która
> obsługuje kilka połączeń HTTP na raz i to tak, żeby była nad nimi pełna
> kontrola (np. możliwość przerwania dowolnego połączenia w dowolnej
> chwili), to koszmar, a właściwie coś czego w oparciu o dostępne moduły
> nie da się zrobić. :-(
>
> W wielu miejscach brakuje mi bardziej niskopoziomowego wejścia do
> niektórych modułów, np. z httplib chciałbym mieć możliwośc uzyskania
> socketa, który mógłbym obsłużyć wraz z innymi poprzez select.select()
> w moim programie. To pomogłoby rozwiązać problem z poprzedniego akapitu,
> i to bez użycia wątków.

testowane localnie: mozesz zamiast 'localhost' i 8000 dac np www.google.com:

import httplib

h = httplib.HTTP( 'localhost', 8000 )
h.putrequest('GET', '/c:/')
h.putheader('Accept', 'text/html')
h.putheader('Accept', 'text/plain')
h.endheaders()
errcode, errmsg, headers = h.getreply()
print errcode
f = h.getfile()

import select
import time
data = ""
numChunks = 0
while 1:
    i,o,e = select.select( [f], [], [] )
    if f in i:
        chunk = f.read( 16 ) # na upartego mozesz dac f.read()...
        if chunk:
            data += chunk
            numChunks += 1
        else:
            break
print data
print numChunks

czy to jest to o co ci chodzilo?

>
> Także moduł cgi w bibliotece standardowej pythona nie został
> przemyślnany, a potem był tylko łatany, żeby w miarę sensownie można
> było z niego korzystać --- mam na myśli to, że raz wartość parametru
> jest listą, a raz nie i łatanie tego w postaci getfirst() i getlist().
tu sie zgadzam dokumentnie, ale zamiast uzywac cgi czyemu nie uzyc
dziesiatek innych modulow do cgi (webkit, spyce itd)?

>
> Ogólnie mam sporo zastrzeżeń do podstawowej biblioteki, ale mimo to
> uważamy Pythona za język najlepszy pod słońcem. Bo pozwala pisać prosto,
> ładnie i czytelnie. A to co mi najbardziej się podoba, to rozdział
> przestrzeni nazw.
>
> Pozdrowienia,
>         Jacek
Technical Details
Message-ID: <asaeoh$6pb$1@news.tpi.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!mimuw.edu.pl!news.mimuw.edu.pl!newsfeed.tpinternet.pl!news.tpi.pl!not-for-mail
References: <slrnauek9a.48c.Ukasz@cytadela.bm> <as7nij$r21$1@news.gazeta.pl> <as9bq1$jgj$1@news.tpi.pl> <slrnauh23g.khr.jajcus@nic.bnet.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!mimuw.edu.pl!news.mimuw.edu.pl!newsfeed.tpinternet.pl!news.tpi.pl!not-for-mail
From: "piter" <tojopiter@yahoo.com>
Newsgroups: pl.comp.lang.python
Subject: Re: Dlaczego lubicie Pythona?
Date: Sat, 30 Nov 2002 14:33:32 +0100
Organization: tp.internet - http://www.tpi.pl/
Lines: 71
Message-ID: <asaeoh$6pb$1@news.tpi.pl>
References: <slrnauek9a.48c.Ukasz@cytadela.bm> <as7nij$r21$1@news.gazeta.pl> <as9bq1$jgj$1@news.tpi.pl> <slrnauh23g.khr.jajcus@nic.bnet.pl>
Reply-To: "piter" <tojopiter@yahoo.com>
NNTP-Posting-Host: pd29.poznan.cvx.ppp.tpnet.pl
X-Trace: news.tpi.pl 1038663250 6955 213.76.75.29 (30 Nov 2002 13:34:10 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Sat, 30 Nov 2002 13:34:10 +0000 (UTC)
X-Newsreader: Microsoft Outlook Express 6.00.2600.0000
X-MSMail-Priority: Normal
X-Priority: 3
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit