Ek het lank opgehou met programmering in Python, maar dit verhinder my nie om die tegnologieë wat ek ken met u te deel nie;). 'N Ruk gelede het ek begin soek na die "beste" webraamwerk in Python, aangesien die een wat ek gebruik het (Web2Py) vrek stadig was. My navorsing het my gelei tot wheezy.web; die wat Hom ken, het dit sekerlik gedoen deur die skouspelagtige maatstaf wat die skrywer op sy blog gemaak het:
Ek weet, 25.000 XNUMX versoeke per sekonde in vergelyking met die res van die raamwerke, is dit 'n ware slaag. Ek het myself gebruik wheezy.web 'n rukkie en ek moet sê dit is 'n ware kunswerk. Waar u ook al kyk: spoed, eenvoud, sekuriteit ... Alles. En daarbo is die werk van 'n enkele persoon: Andriy Kornatskyy.
- Dit werk met Python 2, Python 3 y piepie. Selfs as 3 beter prestasie lewer, is dit verkieslik om aan te hou om 2 te gebruik totdat 3 volwasse genoeg is.
- Die ontwerp daarvan is modulêre, so wheezy.web is meer dinge: wheezy.sjabloon, wheezy.html, wheezy.veiligheid... Gebruik die onderdele wat u wil hê.
- dokumentasie eenvoudig en maklik om te verstaan.
- Outomatiese HTML-optimalisering (komprimeer dit sodat dit minder in beslag neem sonder om eksterne gereedskap te gebruik).
- Hoe kan dit anders wees? gratis sagteware en open source ; D.
- ens ...
Op Andriy se blog is daar goeie tutoriale vir installeer wheezy.web om droog te maak o met i18n (veelvuldige tale); verduidelik ook hoe om te gebruik wheezy.web met Nginx. Die nadeel van al sy tutoriale is dat neem aan dat u Debian gebruik, aangesien hy nog nie op ander distros getoets het nie.
As jy dit gebruik Fedora en jy stel belang wheezy.web, Jy's gelukkig! Hier is die opdrag wat die nodige pakkette sal installeer om die tutoriale te kan volg:
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
Die waarheid is dat dit bestaan wheezy.web Ek vind dit 'n misdaad om 'n ander raamwerk te gebruik, so as u met Python werk, moet u dit ten minste bekyk! Die enigste nadeel wat daaraan toegeskryf kan word, is dat dit geen laag abstraksie meebring om werk met databasisse te vergemaklik nie (dit hoef ook nie, maar daar is mense wat dit waardeer).
En dit is al. 'N Kort, maar relevante artikel. Ek belowe om meer interessante tegnologieë saam te bring! Sien jou ~.
Terloops, 'n nuuskierigheid, weet jy hoekom dit 'wheezy' genoem word? Andriy is 'n aanhanger van Debian. Ek laat dit daar;).
22 kommentaar, los joune
Prestasie is nie die enigste faktor nie. In vergelyking met Django is dit nogal onleesbaar. En eerlikwaar, die 25000 versoeke per sekonde moet in aksie gesien word, maar ek verkies om 15000 (django) gesond te bly skryf, en die res van die werk delegeer dit na die infrastruktuur, dit is regtig die een wat gaan ontvang of nie, 25000 versoeke.
Groete! Dankie vir die data 🙂
Dit is onnodig om te sê dat ek ou weergawes van ander raamwerke gebruik as maatstaf ...
Die maatstafartikel is van 2012. Hy het dit in 2013 weer aangepas en uitgebrei en hy het self aangedui dat dit van daardie jaar af kom: «Laaste beskikbare weergawes vanaf hierdie skrywe (15 Maart 2013)»
Die onleesbaarheid wat u noem, dink ek is nie so erg nie. Ek verstaan dat daar gereeld na maklike programmering gesoek word, maar ek dink nie daar is regtig groot verskille nie. Ek het 'n jaar lank Web2Py gebruik en ek kan u verseker dat dit een van die maklikste raamwerke is wat beskikbaar is. Natuurlik is die prestasie daarvan op baie maniere verskriklik ... In die standaardartikel voer Massimo Di Pierro self (die skepper van Web2Py) 'n debat met Andriy waarin hy uiteindelik erken dat daar baie is om te verbeter; toe hy met Andriy op IRC gesels het, het hy vir my gesê "daar is 'n algemeen aanvaarde filosofie om alles in raamwerke te plaas en dit met funksies op te blaas, al word die meeste nie gebruik nie", en hoe reg was hy ...
Oor wat u oor die infrastruktuur sê, deel ek gedeeltelik wat u sê; 10.000 verskil is BAIE, veral as ons praat oor die gewildste en mees volwasse raamwerk teenoor 'n baie onlangse en min bekende. My benadering is om maksimum doeltreffendheid met maksimum produktiwiteit te kombineer, en ek dink wheezy.web doen dit die beste. Ek het Web2Py (die meeste), Django, Pyramid en wheezy.web gebruik en ek kan u verseker dat dit ongeëwenaard is. Sodra u aanpas by sy manier van doen, maak u nie los van hom nie. Die enigste voordele van Django is die groot gemeenskap wat hy het en die bronne wat oral op die internet is; dit wil sê: gemak. wheezy.web is redelik nuut in vergelyking, en baie min mense weet daarvan; as u maklik gaan, beter Web2Py of Django xD.
Ek wil nie uitbrei nie, maar as ons per sekonde oor versoeke praat, praat ons oor gelyktydigheid. As gelyktydigheid gesoek word, is Python nie die geskikte taal nie. Dit is waarvoor ander tale soos Erlang of Haskell is (en as jy my haastig is, Rust). Maar juis om hierdie rede is dit indrukwekkend dat wheezy.web wat so min kode gebruik, aangesien dit die werk van 'n persoon in sy vrye tyd en ander faktore is, daarin geslaag het om sulke prestasies te behaal.
Ek verstaan wat u sê oor 'gesonde skryfwerk', maar u weet nooit hoeveel 'n projek op lang termyn kan groei nie. Gebruik meer doeltreffende en gelyktydige instrumente, sowel as eenvoudige (ek hou vol dat wheezy.web eenvoudig is vir die prestasie wat dit het), spaar geld en maak die projek langer sonder om die taal te verander. Uiteindelik is alles in die geld wat u vir u bediener moet betaal. Daar is baie bekende webwerwe in PHP, wanneer PHP 'n verskriklike prestasie het ... Maar hoe los u die probleem op? Koop beter bedieners. Met die ander benadering word dit opgelos deur beter te programmeer en hulpbronne te bespaar: P.
Ek is jammer dat ek myself so uitgebrei het. Ek is baie maklik passievol oor xDDD. Cheers!
Ek het goed verstaan wat u bedoel, maar juis as gevolg van wat u noem, is daar geen databasislaag as 'n projek geneig is om te groei of nie.
Volgens my is dit die beste om met geen taal te trou nie. As u gelyktydigheid wil hê, kan u ook Node gebruik, die enjin werk in C.
Wat u oor prestasie noem, is nie net vertikaal (die geval van PHP) nie, maar Facebook bied byvoorbeeld HHVM aan, wat ek gelees het (nie getoets nie), wat die prestasie met 50% verbeter en dit beteken nie om bedieners te koop nie. Eenvoudig gestel, PHP sonder kaslae en / of ander maniere om te optimaliseer, is net so 'sleg' soos enige ander taal sonder laasgenoemde, en ek bedoel sleg om hulle 'n naam te gee, dit is nie net 'beter programmering' nie.
Cheers! 🙂
Kom ons kyk, wat daar nie is nie, is 'n laag abstraksie. Maar u gebruik die ooreenstemmende biblioteek of module om met u databasis en buite te werk, daar is geen raaisel meer nie. Die Web2Py-abstraksielaag is byvoorbeeld baie eenvoudig, maar die prestasie daal dramaties omdat u nie eens geoptimaliseerde SQL kan skryf nie. Alles is in Python; maklik, maar in ruil vir prestasie.
Ek ken HHVM en daarom is tale soos PHP verskriklik vir die moderne tyd; as Facebook in Haskell of Erlang was, sou dit nie nodig gewees het om HHVM te skep nie. Gebruik die kas, pers die lêers saam wat gestuur en ontvang word, ens. dit is voor die hand liggende aspekte van enige ontwikkeling. Die probleem is dat die instrument moet meet :). En daar is gereedskap wat dit nie gee nie. Die beste voorbeeld hiervan is JavaScript ... In daardie geval is daar ten minste wonderwerke soos CoffeeScript, Dart, ens. wat saamgestel word na JS.
Groete!
Perfek! 🙂
Net een ding, facebook as jy haskell gebruik, meer presies Haxl 🙂
Wel, ek gebruik web2py baie, ek stem saam dat dit nie die vinnigste raamwerk is nie, maar dat die maatstaf 'n bietjie uit sy plek lyk, selfs meer as ons ongeveer 3 jaar gelede praat, is die hallo stomme toepassing van web2py baie gelaai in vergelyking met ander raamwerke, maar ek het eerlikwaar nie die afskuwelike verskil in prestasie ervaar tussen my toepassings wat in web2py en django geskryf is nie.
Terloops, in web2py as u SQL kan skryf om die navrae direk uit te voer.
Groete.
Die vinnigste webraamwerk wat u sê, maar u toon geen voorbeeld en ander sleutelfaktore soos ontwikkeling, produktiwiteit, dokumentasie nie. Terwyl django bestaan, weet ek nie waarom dit lyk asof dit 'n misdaad is om dit nie te gebruik nie: p
- Daar is reeds voorbeelde in die dokumentasie. Op sy BitBucket-bladsy ook: https://bitbucket.org/akorn/wheezy.web/src/tip/demos/
- Oor ontwikkeling en produktiwiteit dink ek persoonlik dat dit 'n goeie opsie is om dit in 'eenvoud' op te som. Wat is eenvoudiger en makliker raamwerke? Sekerlik. Maar nie met soveel prestasie nie.
- Ek het die skakel na die dokumentasie in die artikel xDDD geplaas.
- Waarom ek sê dat dit 'n misdaad is, is omdat ek van mening is dat 'n webblad op elke manier so doeltreffend as moontlik moet wees. Soos ek vroeër genoem het, is daar raamwerke wat makliker is om te gebruik, maar die gebruik van wheezy.web is ook nie C-programmering nie. U moet net harder probeer :).
Groete ^^.
Terloops, as iemand lui is om uit te vind en dink dat Wheezy Web slegs in versoeke per sekonde wen ... Hier is nog 'n paar maatstawwe:
http://paste.desdelinux.net/5128 (Die desdeLinux-strooiposfilter laat my nie soveel skakels toe nie)
Ek vra om verskoning dat ek dit nie voorheen opgeneem het nie. Ek het gedink dat een genoeg was om nuuskierigheid te teken xD. Cheers!
Tot dusver gelukkig met Django.
Elke keer as ek hierdie dinge lees, maak dit my kwaad, ek het gedink dat dit net met die php-raamwerke was (Symfony, Yii, CondeIgniter, Phalcon ……… wdf !!). As Django alreeds 'n gemeenskap het (redelik groot) en 'n uitstekende raamwerk is, moet jy nie by die django-span aansluit nie. jy het nog nooit daaraan gedink om by die django-span aan te sluit nie, verdom dit.
Alhoewel albei webraamwerke is, het hulle baie verskillende benaderings. Django is swaar, hy het baie kode, terwyl wheezy.web lig is, is hy verbind tot eenvoud en optimalisering. Na my wete is wheezy.web die enigste werklik modulêre Python-webraamwerk (dit wil sê, dit verdeel al sy kode in verskillende dele wat onafhanklik kan werk). Dit het baie eienskappe wat dit van die res onderskei.
Waarom sluit jy nie aan by Django nie, sê jy? Omdat Django met verskillende benaderings ontwerp is. Hoe pas u 'n modulêre ontwerp toe op Django? Dit moet prakties van vooraf gemaak word! Dieselfde met baie ander kwessies.
Ek verstaan dat dit 'beter 'n enkele raamwerk is wat goed met 'n groot gemeenskap werk', maar dit is nie so maklik nie. Dus verstaan u, deur 'n oppervlakkige assosiasie te maak, is Django soos Debian en wheezy.web soos ... Arch? Gentoo? Dit is beslis 'n slegte voorbeeld, maar ek dink dat xDDD verstaan word.
Groete!
Hoe gaan dit met Lajto, hey ek maak 'n app en ek lees die wheezy.web-dokumentasie en dit is die eerste python-webraamwerk wat ek die eerste keer verstaan. 🙂 U sien, ek het nie veel kennis van netwerke en web nie, maar ek het 'n spesiale trekpleister vir programmering.
Kan u my help om die hallo-wêreld te verander om dit 'n openbare bediener te maak? Miskien is dit 'n baie lawwe vraag, jammer, maar ek kan nie in die dokumentasie vind hoe om dit te doen nie.
Nog 'n vraag, 😉 in die kry- en posmetodes, aangesien ek inligting terugstuur wat nie 'n html-bladsy is nie, moet ek inligting weergee soos dit is? as 'n string of 'n lys of enige soort data. Die kliënt 'n app in Android.
Hallo Ulises! Ek is so bly jy toets wheezy.web: D.
Oor wat u kommentaar lewer, beveel ek sterk aan dat u nie u eie struktuur monteer nie. Die een wat Andriy ry, is redelik goed, dus ek beveel aan dat u dit volg. In die artikel is daar twee skakels na Andriy se blog waar hy die stappe met i18n en sonder i18n verduidelik. As dit 'n bietjie verwarrend is, sal ek hieronder verduidelik hoe om dit te doen sonder i18n:
Open 'n terminaal en voer hierdie vier opdragte uit (vervang "test-web" met die naam van die gids wat u vir u projek wil hê):
wget https://bitbucket.org/akorn/wheezy.web/downloads/quickstart-empty.zip
pak zipstart-empty.zip uit
mv quickstart-leë toets-web
rm quickstart-empty.zip
As u PIL wil gebruik, moet u die setup.py-lêer verander en die ooreenstemmende kode opmerk. Sodra u gereed is, voer die volgende drie opdragte uit:
web-toets-cd
maak env
env / bin / easy_install uwsgi
U bediener is reeds geïnstalleer. As u 'n vinnige maatstaf wil doen om te sien of dit werk, terwyl u in die map is, hardloop u:
maak die toets neusbedekking maatstaf
Ek beveel aan dat u na "etc / development.ini" gaan en "limit-as = 120" verander na "limit-as = 512". Dit is hoeveel MB RAM die uWSGI sal "opvreet", sodat dit in die toekoms kan vergroot word indien nodig.
Ten slotte, elke keer as u u bediener wil oopmaak, is dit genoeg om u in u projekmap op te spoor en uit te voer:
maak uwsgi
Oor die ander vrae ... Die bediener is standaard geprogrammeer om op localhost te werk. As u dit openbaar wil maak, omdat u dit reeds gereed het en dit op 'n fisiese bediener in produksie wil gebruik, maak dan net 'src / app.py' oop en soek die volgende: make_server (', 8080, hoof). Die eerste parameter is 'n leë string, of hoe? Wel, daar sit u die IP van u bediener. Die tweede parameter is die poort wat u wil gebruik, wat standaard 8080 is.
Ten slotte, wat u sê oor die terugstuur van iets anders as HTML, kan u natuurlik! In die dokumentasie verduidelik hulle hoe u alles moet terugbesorg: https://pythonhosted.org/wheezy.web/userguide.html#web-handlers
N groet! Enigiets wat u my vertel;).
Baie dankie Lajto, u het my twyfel regtig uitgeklaar, ek het met django probeer, maar soos ek vir u gesê het, ek is nie 'n stelselingenieur nie en django, ek dink dit bring veel meer as wat ek nodig het. Gebruik wheezy.web om 'n toepassing op Android en kommunikeer dit met 'n bediener. Iets baie eenvoudig, maar redelik vinnig en prakties. Hey nog 'n vraag, ek het onlangs gesien dat daar 'n groot ophef is met http / 2, hoe weet ek op watter protokol wheezy.web werk? Kan ek 'n bediener maak wat http / 2 in wheezy.web gebruik? Of beveel my 'n boek, blog, handleiding aan wat in blokke is wat die hele saak van netwerke en kommunikasie kan verduidelik. Weereens dankie.
Hallo weer Ulises ^^.
HTTP / 2 is baie onlangs en sal vir nog 1 jaar nie ernstig aangeneem word nie, dus moenie daaraan steur nie :). As u sekuriteit wil hê, gebruik HTTPS en dit is dit.
Ek is nie seker wat Wheezy Web vir HTTP gebruik nie, dus neem ek aan dat dit WSGI sal wees.
Groete!
Terloops, ietsie van niks. In sommige distros verskyn 'n WAARSKUWINGSboodskap oor .python-eggs. Niks gebeur as dit voorkom nie, maar as u dit irriterend vind, kan u dit verwyder met:
chmod go = ~ / .python-eiers
Groete!
Ek gebruik Django, maar ek gaan na die dokumentasie om te sien hoe dit werk. Dankie vir die deel. Cheers
Dit kan vanaf Windows gebruik word !!!, is daar 'n handleiding ??
Dankie
Hallo, ons het baie ervaring met Python. Dit lyk vir my asof hulle teen die stroom roei. Die beste ding wat ooit vir hierdie taal uitgevind is, is Django. Hulle kan statistieke opstel en honderde programmeerders van regoor die wêreld raadpleeg, dit sal u meer as 80% gee, die meeste is nie verkeerd nie. As hulle teen die stroom roei of swem, sal hulle vroeër of later verdrink ...