Dugo sam prestao da programiram na Pythonu, ali to me ne spreÄava da sa vama podijelim tehnologije koje znam;). Prije nekog vremena upustio sam se u potragu za "najboljim" web okvirom u Pythonu, jer je onaj koji sam koristio (Web2Py) bio prokleto spor. Moje istraĹživanje me dovelo do toga wheezy.web; oni koji ga poznaju to su sigurno uÄinili kroz spektakularna mjerila koja je autor napravio na svom blogu:
Znam, 25.000 zahtjeva u sekundi u usporedbi s ostatkom okvira to je pravi prolazak. I sam sam koristio wheezy.web neko vrijeme i moram reÄi da je to pravo umjetniÄko djelo. Gdje god ga pogledate: brzina, jednostavnost, sigurnost ... Sve. A iznad je djelo jedne osobe: Andrija Kornatskog.
- Radi s Python 2, Python 3 y pypy. Äak i ako 3 daje bolje performanse, poĹželjno je nastaviti koristiti 2 dok 3 ne postane dovoljno zrelo.
- Njegov dizajn je Modularno, tako da wheezy.web ima joĹĄ stvari: wheezy.template, wheezy.html, wheezy.security... Koristite dijelove koje Ĺželite.
- Dokumentacija jednostavno i lako razumljivo.
- Automatska HTML optimizacija (komprimira ga tako da zauzima manje bez upotrebe vanjskih alata).
- Kako bi i moglo biti drugaÄije, jeste besplatni softver i otvoreni kod ; D.
- itd ...
Na Andrijinom blogu postoje sjajni vodiÄi za instalar wheezy.web osusiti o sa i18n (viĹĄe jezika); takoÄe objaĹĄnjava kako koristiti wheezy.web sa Nginxom. LoĹĄa strana svih njegovih vodiÄa je ta pretpostavimo da koristite Debian, jer nije testirao na drugim distribucijama.
Ako koristite fedora i vas zanima wheezy.web, imaĹĄ sreÄe! Evo naredbe koja Äe instalirati potrebne pakete da biste mogli slijediti njegove vodiÄe:
sudo dnf install python python-devel python3 python3-devel python-setuptools python-virtualenv libxml2 libxml2-devel libxslt libxslt-devel libmemcached libmemcached-devel memcached memcached-devel gzip ntpdate gettext uwsgi uwsgi-plugin-python socat nginx
Istina je da postoji wheezy.web Smatram da je zloÄin koristiti drugi okvir, pa ako radite s Pythonom, pogledajte ga u najmanju ruku! Jedini nedostatak koji mu se moĹže pripisati je taj ĹĄto ne donosi nikakav sloj apstrakcije kako bi olakĹĄao rad s bazama podataka (niti treba, ali postoje ljudi koji to cijene).
I to je sve. Kratki, ali relevantan Älanak. ObeÄavam da Äu donijeti joĹĄ cool tehnologija! Vidimo se ~.
Usput, kuriozitet, da li znate zaĹĄto se to zove "piskavac"? Andriy je fan Debiana. Ostavljam tamo;).
Performanse nisu jedini faktor. U poreÄenju sa Djangom, priliÄno je neÄitljiv. I iskreno, 25000 zahtjeva u sekundi treba vidjeti na djelu, ali ja viĹĄe volim da ostanem sa 15000 (django) da piĹĄem zdravo, a ostatak posla delegiram na infrastrukturu, koja Äe zaista biti ona koja Äe primiti ili ne, 25000 zahtjeva.
Pozdrav! Hvala na podacima đ
Nepotrebno je reÄi da za usporedbu koristim stare verzije drugih okvira ...
Referentni Älanak je iz 2012. On ga je ponovo izmijenio i proĹĄirio 2013. godine i sam je precizirao da su iz te godine: ÂŤNajnovije dostupne verzije od ovog pisanja (15. marta 2013.)Âť
NeÄitkost koju spominjete mislim da nije toliko loĹĄa. Razumijem da se Äesto traĹži lakoÄa programiranja, ali mislim da zapravo nema znaÄajnih razlika. Koristio sam Web2Py godinu dana i uvjeravam vas da je to jedan od najjednostavnijih raspoloĹživih okvira. Naravno, njegova izvedba je na mnogo naÄina uĹžasna ... U referentnom Älanku i sam Massimo Di Pierro (kreator Web2Py) vodi debatu s Andriyjem u kojoj konaÄno priznaje da se mora joĹĄ puno poboljĹĄati; razgovarajuÄi s Andriyem na IRC-u, rekao mi je "postoji ĹĄiroko prihvaÄena filozofija stavljanja svega u okvire i nadimanja sa znaÄajkama, Äak i ako se veÄina ne koristi", i koliko je bio u pravu ...
U vezi s onim ĹĄto kaĹžete o infrastrukturi, djelomiÄno dijelim ono ĹĄto kaĹžete; 10.000 razlike je MNOGO, pogotovo kada govorimo o najpopularnijem i zrelijem okviru u odnosu na vrlo noviji i malo poznati. Moj pristup je uvijek kombinirati maksimalnu efikasnost s maksimalnom produktivnoĹĄÄu, a mislim da wheezy.web to najbolje radi. Koristio sam Web2Py (najviĹĄe), Django, Pyramid i wheezy.web i uvjeravam vas da nema premca. Jednom kada se prilagodite njegovom naÄinu rada, ne odvajate se od njega. Jedine prednosti Djanga su velika zajednica koju ima i resursi ĹĄirom Interneta; to Äe reÄi: lakoÄa. wheezy.web je priliÄno nov u usporedbi i vrlo malo ljudi zna za njega; ako idete lako, bolje Web2Py ili Django xD.
Ne Ĺželim proĹĄiriti, ali kada govorimo o zahtjevima u sekundi govorimo o paralelnosti. Ako se traĹži podudarnost, Python nije odgovarajuÄi jezik. Tome sluĹže i drugi jezici poput Erlanga ili Haskela (i ako me poĹžurite, Rust). Ali upravo iz tog razloga impresivno je da je wheezy.web koji zauzima tako malo koda, koji je djelo osobe u slobodno vrijeme i drugih faktora, uspio postiÄi takve performanse.
Razumijem ĹĄto kaĹžete o âzdravom pisanjuâ, ali nikad ne znate koliko projekt moĹže dugoroÄno narasti. KoriĹĄtenjem efikasnijih i istovremenih alata, kao i jednostavnih (drĹžim da je wheezy.web jednostavan zbog performansi koje ima), uĹĄtedite novac i napravite skalu projekta duĹže bez promjene jezika. Na kraju je sve u novcu koji treba platiti svom serveru. U PHP-u postoje vrlo poznate web stranice, kada je PHP uĹžasnih performansi ... Ali kako rijeĹĄiti taj problem? Kupovina boljih servera. Drugim pristupom to se rjeĹĄava boljim programiranjem i uĹĄtedom resursa: P.
Žao mi je ťto sam se toliko produŞio. Vrlo sam strastven prema xDDD-u. Živjeli!
SavrĹĄeno sam razumio na ĹĄto mislite, ali upravo zbog onoga ĹĄto spominjete, ako projekt ima tendenciju rasta ili ne, jer mi idemo s piskanjem da nema sloja baze podataka.
Po mom glediĹĄtu, najbolje je ne vjenÄati se ni sa jednim jezikom. Ako Ĺželite paralelnost, moĹžete koristiti i Node koji radi na C.
Ono ĹĄto spominjete o performansama nije samo vertikalno skaliranje (sluÄaj PHP-a), Facebook na primjer nudi HHVM, koji sam proÄitao (nije testiran), a koji poboljĹĄava performanse za 50%, a to nije kupovina servera. ObiÄan PHP bez slojeva predmemorije i / ili drugih naÄina za optimizaciju jednako je "loĹĄ" kao i bilo koji drugi jezik bez potonjeg, a mislim loĹĄe ako im dam ime, to nije samo "bolji kod".
Ĺ˝ivjeli! đ
Da vidimo, ono ĹĄto nema je sloj apstrakcije. Ali koristite odgovarajuÄu biblioteku ili modul za rad s bazom podataka i izvan nje, viĹĄe nema tajne. Na primjer, sloj apstrakcije Web2Py vrlo je jednostavan, ali performanse dramatiÄno padaju jer ne moĹžete Äak ni napisati optimizirani SQL. Sve je u Pythonu; lako, ali zauzvrat za performanse.
Znam HHVM i upravo su zato jezici poput PHP uĹžasni za moderno doba; da je Facebook u Haskellu ili Erlangu ne bi bilo potrebno stvarati HHVM. Koristite predmemoriju, komprimirajte datoteke koje se ĹĄalju i primaju itd. to su oÄigledni aspekti svakog razvoja. Problem je u tome ĹĄto se alat mora mjeriti :). A postoje alati koji to ne pruĹžaju. Najbolji primjer za to je JavaScript ... U tom sluÄaju barem postoje Äuda poput CoffeeScript, Dart itd. koji se prevode u JS.
Pozdrav!
SavrĹĄeno! đ
Samo jedna stvar, facebook ako koristite haskell, taÄnije Haxl đ
Pa, puno koristim web2py, slaĹžem se da to nije najbrĹži okvir, ali Äini se da je ta mjera pomalo neumjesna, Äak i viĹĄe kad govorimo o prije 3 godine, zdravo glupa aplikacija web2py vrlo je optereÄena u usporedbi na druge okvire, ali iskreno nisam iskusio onu uĹžasnu razliku u performansama izmeÄu mojih aplikacija napisanih na web2py i django.
Usput, u web2py ako moĹžete pisati SQL za izvoÄenje upita direktno.
Pozdrav.
NajbrĹži mreĹžni okvir koji kaĹžete, ali ne pokazujete nijedan primjer i druge kljuÄne Äimbenike, poput razvoja, produktivnosti, dokumentacije. S postojanjem djanga, ne znam zaĹĄto se Äini da je zloÄin ne koristiti ovo: str
- U dokumentaciji veÄ postoje primjeri. Na njegovoj BitBucket stranici takoÄe: https://bitbucket.org/akorn/wheezy.web/src/tip/demos/
- Ĺ to se tiÄe razvoja i produktivnosti, osobno mislim da je saĹžeti u "jednostavnost" dobra opcija. Koji su joĹĄ jednostavniji i lakĹĄi okviri? Naravno. Ali ne sa toliko performansi.
- Stavio sam vezu do dokumentacije u Älanku xDDD.
- ZaĹĄto kaĹžem da je to zloÄin, jer vjerujem da bi web stranica trebala biti ĹĄto efikasnija u svakom pogledu. Kao ĹĄto sam veÄ spomenuo, postoje okviri lakĹĄi za upotrebu, ali koriĹĄtenje wheezy.web nije ni programiranje C. Samo se treba viĹĄe potruditi :).
Pozdrav ^^.
InaÄe, u sluÄaju da je neko lijen saznati i pomisli da Wheezy Web pobjeÄuje samo u zahtjevima u sekundi ... Evo joĹĄ nekoliko mjerila:
http://paste.desdelinux.net/5128 (filter za neĹželjenu poĹĄtu od DesdeLinux NeÄe mi dozvoliti da stavim toliko linkova)
Izvinjavam se ĹĄto ih prethodno nisam ukljuÄio. Mislio sam da je jedan dovoljan da privuÄem radoznalost xD. Ĺ˝ivjeli!
Do sada zadovoljan Djangom.
Ma, svaki put kad proÄitam ove stvari, to me naljuti, pomislio sam da je to samo s php okvirima (Symfony, Yii, CondeIgniter, Phalcon âŚâŚâŚ wdf !!). Ako Django veÄ ima zajednicu (priliÄno veliku) i odliÄan je okvir, zaĹĄto se, umjesto da gubite vrijeme na ponovno otkrivanje kotaÄa, nemojte pridruĹžiti django timu. @ Lajto u razgovoru s autorom wheezy.web, zaĹĄto ne pitate ga? Ako nikada niste razmiĹĄljali o tome da se pridruĹžite django timu, dovraga. Ĺ˝ivjeli ..
Iako su oba mreĹžni okviri, oni imaju vrlo razliÄite pristupe. Django je teĹžak, ima puno koda, dok je wheezy.web lagan, posveÄen je jednostavnosti i optimizaciji. Prema mojim saznanjima, wheezy.web je jedini istinski modularni Python web okvir (to jest, on razdvaja sav svoj kĂ´d na razliÄite dijelove koji mogu raditi samostalno). Ima mnoge karakteristike koje ga razlikuju od ostalih.
ZaĹĄto se ne biste pridruĹžili Djangu, kaĹžete? Jer Django je dizajniran sa potpuno drugaÄijim pristupima. Kako primijeniti modularni dizajn na Django? Morao bi se prepraviti praktiÄno od nule! Isto je i sa mnogim drugim pitanjima.
Razumijem osjeÄaj da je "bolje jedan okvir koji dobro funkcionira s velikom zajednicom", ali to nije tako lako. Dakle, razumijete, ÄineÄi povrĹĄnu asocijaciju, Django je poput Debiana, a wheezy.web poput ... Arch? Gentoo? Definitivno je loĹĄ primjer, ali mislim da se xDDD razumije.
Pozdrav!
Ĺ to kaĹžete na Lajto, hej, pravim aplikaciju i proÄitao sam dokumentaciju wheezy.web i to je prvi python web framework koji sam razumio prvi put đ Vidite, nemam puno znanja o mreĹžama i webu, ali znam imaju posebnu privlaÄnost prema programiranju.
MoĹžete li mi pomoÄi kako da modifikujem hello world tako da postane javni server? MoĹžda je to vrlo glupo pitanje, izvinite, ali u dokumentaciji ne mogu pronaÄi kako to uÄiniti.
JoĹĄ jedno pitanje, đ u metodama get i post, dok vraÄam informacije koje nisu html stranice, vraÄam li informacije takve kakve jesu? kao niz ili lista ili bilo koja vrsta podataka. Klijent aplikacija u androidu.
Pozdrav Ulises! Tako mi je drago ĹĄto testirate wheezy.web: D.
Ĺ to se tiÄe komentara, toplo preporuÄujem da ne montirate vlastitu strukturu. Onaj koji Andriy vozi je priliÄno dobar, pa preporuÄujem da ga slijedite. U Älanku postoje dvije veze do Andrijinog bloga gdje objaĹĄnjava korake s i18n i bez i18n. U sluÄaju da je malo zbunjujuÄe, u nastavku Äu objasniti kako to uÄiniti bez i18n:
Otvorite terminal i pokrenite ove Äetiri naredbe (zamijenite "test-web" imenom mape koju Ĺželite za svoj projekt):
wget https://bitbucket.org/akorn/wheezy.web/downloads/quickstart-empty.zip
raspakirajte quickstart-empty.zip
mv quickstart-empty test-web
rm quickstart-empty.zip
Ako Ĺželite koristiti PIL, modificirajte datoteku setup.py i raskomentirajte odgovarajuÄi kĂ´d. Kad ste spremni, pokrenite sljedeÄe tri naredbe:
web-test-cd
napraviti env
env / bin / easy_install uwsgi
VaĹĄ je server veÄ postavljen. Ako Ĺželite napraviti brzu referentnu toÄku da vidite da li radi, nalazeÄi se u mapi, pokrenite:
napraviti test mjerilo poklopca za nos
PreporuÄujem vam da odete na "etc / development.ini" i promijenite "limit-as = 120" u "limit-as = 512". Ovo je koliko Äe MB RAM-a uWSGI "pojesti", pa bi se moglo poveÄati u buduÄnosti ako bude potrebno.
Napokon, svaki put kada Ĺželite otvoriti svoj server, bilo bi dovoljno da se locirate u mapi svog projekta i izvrĹĄite:
make uwsgi
Ostala pitanja ... Po defaultu, posluĹžitelj je programiran za pokretanje na localhostu. Ako to Ĺželite uÄiniti javnim, jer ga veÄ imate i Ĺželite ga koristiti na fiziÄkom posluĹžitelju u produkciji, samo otvorite "src / app.py" i pronaÄite sljedeÄe: make_server (", 8080, main). Prvi parametar je prazan niz, zar ne? Pa, tu ste stavili IP svog servera. Drugi parametar je port koji Ĺželite koristiti, a koji je prema zadanim postavkama 8080.
Napokon, ono ĹĄto kaĹžete o vraÄanju neÄega ĹĄto nije HTML, naravno da moĹžete! U dokumentaciji objaĹĄnjavaju kako sve vratiti: https://pythonhosted.org/wheezy.web/userguide.html#web-handlers
Pozdrav! Sve ĹĄto mi kaĹžete;).
Hvala vam puno Lajto, zaista ste razjasnili moje sumnje, pokuĹĄao sam s django, ali kao ĹĄto sam vam rekao nisam inĹženjer sistema i django mislim da donosi mnogo viĹĄe od onoga ĹĄto mi je trebalo, upotrijebite wheezy.web da testirate aplikaciju u android i komunicirajte s serverom. NeĹĄto vrlo jednostavno, ali priliÄno brzo i praktiÄno. Hej, joĹĄ jedno pitanje, nedavno sam vidio da postoji velika guĹžva s http / 2, kako da znam na kojem protokolu radi wheezy.web? Mogu li napraviti server koji koristi http / 2 u wheezy.web? Ili mi preporuÄite knjigu, blog, tutorial koji je u blokovima koji mogu objasniti cijelu stvar mreĹža i komunikacija. Hvala joĹĄ jednom.
Pozdrav ponovo Ulises ^^.
HTTP / 2 je vrlo nov i neÄe biti usvojen ozbiljno joĹĄ godinu dana, zato se nemojte zamarati s tim :). Ako Ĺželite sigurnost, koristite HTTPS i to je to.
Nisam siguran ĹĄto Wheezy Web koristi za HTTP, pa pretpostavljam da Äe to biti WSGI.
Pozdrav!
InaÄe, neĹĄto malo od niÄega. Na nekim distribucijama pojavljuje se poruka UPOZORENJE o .python-jajima. NiĹĄta se ne dogaÄa ako se pojavi, ali ako vam smeta, moĹžete ga ukloniti pomoÄu:
chmod go = ~ / .python-jaja
Pozdrav!
Koristim Django, ali provjerit Äu dokumentaciju da vidim kako to funkcionira. Hvala na dijeljenju. Ĺ˝ivjeli
MoĹže se koristiti iz prozora !!!, postoji li vodiÄ ??
hvala
Bok, imamo puno iskustva s Pythonom. Äini mi se da veslaju protiv struje. Najbolja stvar koja je ikad izmiĹĄljena za ovaj jezik je Django. Oni mogu napraviti statistiku i savjetovati se sa stotinama programera iz cijelog svijeta, dat Äe vam viĹĄe od 80%, veÄina njih ne grijeĹĄi. Ako veslaju ili plivaju protiv struje, prije ili kasnije utopit Äe se ...