On Apr 24, 5:34 pm, Petr Messner <petr.mess...@gmail.com> wrote:
> Ahoj,
>
> zkusím ti to nejdřív nějak vysvětlit, pak ti odpovím na tvé konkrétní otázky 
> a závěr ještě něco přidám. Sorry, vzhledem k formulaci a vlastně samotné 
> existenci dotazu jsem se trochu více rozepsal.
>
> Pro jistotu zde uvedu definici WSGI: je to lepidlo, pomocí kterého se slepí 
> webový server a webový framework/webová aplikace; je to proto, aby každá 
> aplikace/každý framework nemusel znovu a znovu implementovat HTTP, FastCGI, 
> CGI atd. Místo toho jen webserver nebo FastCGI server nebo CGI handler (nebo 
> cokoliv) jen poskytne WSGI rozhraní a aplikace/framework už se tím nemusí 
> zabývat.
>
> Ale stále toho k zabývání se ještě spousta zbývá. WSGI je low-level a nedělá 
> nic jiného, než co jsem právě popsal. Mohl bys WSGI vzít a přidat do něj 
> nějaké hezčí zpracování uploadu souborů, mohl bys do něj přidat spojení do 
> databáze, logování atd., ale to už by pak nebylo hezké rozhraní, ale pěkný 
> moloch. Byl by to webový framework. Úkolem WSGI není být webovým frameworkem, 
> ale umožnit webovým frameworkům fungovat nezávisle na tom, jestli budou 
> spuštěny přes CGI, FastCGI nebo nějak jinak.
>
> Takže:
>
> 1. pokud chceš v Pythonu dělat weby, nedělej je čistě ve WSGI, ale najdi si 
> knihovnu nebo framework, která bude řešit ty nejotravnější věci (upload 
> souborů apod.) Může to být buď full-stack framework jako třeba Django nebo 
> Pylons, nebo to může být knihovna, která dělá primárně právě jen tohle, např. 
> Werkzeug, Paste WebOb, yaro, ... Je toho mraky. Mezi tím jsou ještě další 
> věci, např. CherryPy. A pak ještě speciality, jako Zope nebo Twisted.
>
> 2. statistiky na webu bývají pochybné kvality, nejlepší je se o výkonu něčeho 
> přesvědčit sám. Na co psát něco ultra-efektivně, když tam stejně poleze jen 
> deset lidí denně - místo toho to dělej tak, abys z toho měl sám radost a měl 
> s tím co nejméně práce. Na druhou stranu, pro jakýkoliv dobře nakonfigurovaný 
> způsob nasazení webové aplikace by neměl být problém zvádnout stovky 
> požadavků za sekundu, a pokud bude požadavků více, stejně při takovém provozu 
> se už asi dávno budeš poohlížet po dalším železe.
>
> 3. že nechceš používat mod_python já osobně chválím :) I když pro to mám jiné 
> důvody, než statistiky na webu. WSGI je univerzálnější. (Ne že by v 
> mod_pythonu nešel použít WSGI handler, věřím, že je zde řeč o standardním 
> mod_python publisheru.) Mimochodem, abychom předešli obvyklému počátečnímu 
> zádrhelu - WSGI není to samé, co mod_wsgi. Jedno je rozhraní a druhé je jedna 
> z implementací tohoto rozhraní pro Apache.
>
> 4. proč ti nefunguje ten print samozřejmě nevím, ale vzhledem k tomu, že 
> print vypisuje na standardní výstup, asi to bude tím, že svoji aplikaci 
> spouštíš pomocí něčeho, co ten standardní výstup zavírá. Třeba kdybych já 
> pomocí printu něco napsal, tak se mi to vypíše rovnou do konzole, kde je 
> webovka spuštěná (tedy ne uživateli do prohlížeče), a na serveru standardní 
> výstup bývá (když není zavřený) přesměrovaný do /dev/null, takže se to zapíše 
> víš kam. Používat print ve webové aplikaci lze jen na ladění, jinak je to asi 
> stejný nesmysl jako používat ho v GUI aplikacích. Jo a jestli si chtěl napsat 
> něco jako print("<html>... kilobajty balastu ...</html>"), tak použij 
> šablonu, je to o dost jednodušší a přehlednější :)
>
> Co by měl být tvůj další krok - doporučuji se podívat na Django. Je tu dost 
> příznivců a uživatelů Djanga, takže i z tohoto pohledu je to perspektivní.
>
> Kdybys nechtěl jít do Djanga, tak se zkus třeba podívat 
> nahttp://werkzeug.pocoo.org/a rozklikni si to "click here to see ...", je tam 
> docela pěkná ukázka. Jak vidíš, snadno získáš objekt Request, ve kterém je 
> vše co potřebuješ, odpověď vracíš objektem třídy Response a co děláš mezi tím 
> je na tobě, to ti jako PHP programátorovi přijde asi bližší. Werkzeug není 
> zrovna hodně používaná věc, ale mě se líbí, lze na ni demonstrovat, jak to 
> dělat snadno a bez frameworkového molochu, proto to zde uvádím. Takových 
> podobných nástrojů jako Werkzeug je více.
>
> Vůbec pro PHP programátora bude asi největší problém to, že dělat něco v 
> Pythonu nebo Ruby neznamená jen naučit se jazyk a třeba jen jeden způsob jak 
> to zprovoznit, ale už při čtení prvního tutorialu se na tebe valí věci jako 
> ORM, MVC, URL routing, testování, ideálně ještě základy Linuxu/BSD/.... Tím 
> se nenech odradit.
>
> Takže přeji hodně štěstí, ale stojí to za to :)
>
> PM
>
> PS. předpokládám, že tvůj další dotaz do této konference bude, kde na to 
> najít hosting :)
>
> On 24.4.2010, at 16:01, Thomix wrote:
>
>
>
> > Zdravím,
>
> > už několik let programuju v php. Poslední dobou šilhám po python pro
> > web. Nainstaloval jsem si modul WSGI a zkusil si par tutoriálů. Ovšem
> > mám problém.
>
> > Např.:
>
> > def application(environ, start_response):
> >    status = '200 OK'
> >    output = 'hl'
>
> >    response_headers = [('Content-type', 'text/plain'),
> >                        ('Content-Length', str(len(output)))]
> >    start_response(status, response_headers)
>
> >    return [output]
>
> > Tomuto celkem rozumím ale nechapu jak v tom více programovat ??? Když
> > si napíšu print("neco"); napiše to chybu a dále se to semnou nebaví.
>
> > Viz.:
>
> > def application(environ, start_response):
> >    status = '200 OK'
> >    output = 'hl'
> >    print("neco");
>
> >    response_headers = [('Content-type', 'text/plain'),
> >                        ('Content-Length', str(len(output)))]
> >    start_response(status, response_headers)
>
> >    return [output]
>
> > Nějak nechápu v čem je problém. Mod_python nechci používat z důvodu
> > slabé odezvialesponň dle statistik co jsem četl na internetu. Mohl by
> > mě prosím někdo objasnit alespoň základ psaní ve WSGI ?
>
> > Děkuji :)
> > _______________________________________________
> > Python mailing list
> > pyt...@py.cz
> >http://www.py.cz/mailman/listinfo/python

Na začátek bych strašně rád poděkoval za nádherné odezvy, které mě
přivádějí na tu dle mého správnou cestu. Moje projekty navštěvuje více
než deset lidí. Celový traffik je 4TB měsičné, beží na VPS (ubuntu a
debian). Zpracovávám databáze o velikosti 100 a více mb. Příjde mě že
PHP je v tomto při velké návštevnosti strašně pomalé. Proto by mě
zajímalo zda není chyba používat python frameworky na velké projekty.
Pokud ne v čem by jste mě doporučili je dělat ? Rád bych si právě
udělal i vlastní administraci a nechtěl bych využívat něco co už je.
Ještě jednou děkuji :)
_______________________________________________
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem