Jag slutade programmera i Python fรถr lรคnge sedan, men det hindrar mig inte frรฅn att dela de teknologier jag kan med er ;). Fรถr en tid sedan var jag involverad i sรถkandet efter det "bรคsta" webbramverket i Python, eftersom det jag anvรคnde (Web2Py) var djรคvulskt lรฅngsamt. Min forskning ledde mig till wheezy.web; De som kรคnner honom har sรคkert gjort det genom spektakulรคrt riktmรคrke som fรถrfattaren gjorde i sin blogg:
Jag vet, 25.000 XNUMX fรถrfrรฅgningar per sekund Jรคmfรถrt med resten av ramarna รคr det fantastiskt. jag anvรคnde mig sjรคlv wheezy.web ett tag och jag mรฅste sรคga att det รคr ett riktigt konstverk. Var du รคn tittar pรฅ det: snabbhet, enkelhet, sรคkerhet... Allt. Och utรถver det รคr det en enda persons verk: Andriy Kornatskyy.
- Fungerar med python 2, python 3 y pypy. รven om 3 ger bรคttre, รคr det att fรถredra att fortsรคtta anvรคnda 2 tills 3 mognar tillrรคckligt.
- Hans design รคr modulรคra, Sรฅ att wheezy.web รคr fler saker: wheezy.mall, wheezy.html, wheezy.sรคkerhetโฆ Anvรคnd de delar du vill ha.
- dokumentation enkelt och lรคtt att fรถrstรฅ.
- Automatisk HTML-optimering (den komprimerar den sรฅ att den upptar mindre utan att behรถva anvรคnda externa verktyg).
- Hur kunde det vara annorlunda, det รคr det fri programvara och รถppen kรคllkod ;D.
- etc ...
I Andriys blogg finns bra tutorials fรถr installera wheezy.web att torka o med i18n (flera sprรฅk); fรถrklarar ocksรฅ hur man anvรคnder wheezy.web med Nginx. Nackdelen med alla dina tutorials รคr att antar att du anvรคnder Debian, eftersom han inte har testat pรฅ andra distros.
Om du anvรคnder fedora och du รคr intresserad wheezy.web, du har tur! Hรคr har du kommandot som kommer att installera de nรถdvรคndiga paketen fรถr att kunna fรถlja deras tutorials:
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
Sanningen รคr att existerande wheezy.web Jag tycker att det รคr ett brott att anvรคnda ett annat ramverk, sรฅ om du arbetar med Python, kolla upp det รฅtminstone! Den enda nackdelen som kan tillskrivas det รคr att det inte innehรฅller nรฅgot abstraktionslager fรถr att underlรคtta arbetet med databaser (det behรถver inte gรถras, men det finns folk som uppskattar det).
Och det รคr allt. En kort men relevant artikel. Jag lovar att ta med mer spรคnnande teknik! Vi ses~
Fรถrresten, en kuriosa, vet du varfรถr det kallas "wheezy"? Andriy รคr ett fan av Debian. Jag lรคmnar det dรคr ;).
Prestanda รคr inte den enda faktorn. Jรคmfรถrt med Django รคr det ganska olรคsligt. Och รคrligt talat, de 25000 15000 fรถrfrรฅgningarna per sekund borde ses i aktion, men jag fรถredrar att stanna med 25000 XNUMX (django) fรถr att skriva sunt, och delegera resten av arbetet till infrastrukturen, som VERKLIGEN รคr den som kommer att ta emot eller inte, XNUMX XNUMX fรถrfrรฅgningar.
Hรคlsningar! Tack fรถr dejten ๐
Det sรคger sig sjรคlvt att fรถr att gรถra riktmรคrket anvรคnder jag gamla versioner av andra ramverk...
Benchmark-artikeln รคr frรฅn 2012. Han modifierade och utรถkade den igen 2013 och han specificerar sjรคlv att de รคr frรฅn det รฅret: "Senaste tillgรคngliga versioner nรคr detta skrivs (15 mars 2013)"
Olรคsligheten som du nรคmner tycker jag inte รคr en stor sak. Jag fรถrstรฅr att det ofta efterstrรคvas enkel programmering, men jag tror inte att det รคr nรฅgra stรถrre skillnader. Jag anvรคnde Web2Py i ett รฅr, och jag fรถrsรคkrar er att det รคr ett av de mest anvรคndarvรคnliga ramverken som finns. Naturligtvis รคr dess prestanda usel pรฅ mรฅnga sรคtt... I referensartikeln har Massimo Di Pierro sjรคlv (skaparen av Web2Py) en debatt med Andriy dรคr han slutligen erkรคnner att det finns mycket utrymme fรถr fรถrbรคttringar; Nรคr han pratade med Andriy pรฅ IRC sa han till mig "det finns en allmรคnt accepterad filosofi att sรคtta in allt i ramar och fylla dem med funktioner รคven om de flesta av dem inte anvรคnds", och hur rรคtt han hade...
Angรฅende det du sรคger om infrastrukturen sรฅ hรฅller jag delvis med om det du sรคger; 10.000 2 skillnad รคr MYCKET, speciellt nรคr vi pratar om det mest populรคra och mogna ramverket jรคmfรถrt med ett mycket nytt och lite kรคnt. Mitt tillvรคgagรฅngssรคtt รคr alltid att kombinera maximal effektivitet med maximal produktivitet, och jag tror att wheezy.web gรถr det bรคst. Jag har anvรคnt Web2Py (mest), Django, Pyramid och wheezy.web och jag fรถrsรคkrar er att det รคr oรถvertrรคffat. Nรคr du vรคl anpassar dig till hans sรคtt att gรถra saker, sรฅ blir du inte frikopplad frรฅn honom. Den enda fรถrdelen med Django รคr den stora community som den har och resurserna som finns รถver hela Internet; det vill sรคga: lรคtthet. wheezy.web รคr ganska nytt i jรคmfรถrelse, och vรคldigt fรฅ mรคnniskor kรคnner till det; om du gรฅr lรคtt, bรคttre WebXNUMXPy eller Django xD.
Jag vill inte fรถrlรคnga mig, men nรคr vi pratar om fรถrfrรฅgningar per sekund pratar vi om samtidighet. Om du letar efter samtidighet รคr Python inte det lรคmpliga sprรฅket. Fรถr det finns det andra sprรฅk som Erlang eller Haskell (och om du skyndar mig, Rust). Men just av denna anledning รคr det imponerande att wheezy.web, som upptar sรฅ lite kod, som รคr en persons arbete pรฅ sin fritid och en rad andra faktorer, har lyckats uppnรฅ en sรฅdan prestanda.
Jag fรถrstรฅr vad du sรคger om "hรคlsosamt skrivande", men man vet aldrig hur mycket ett projekt kan vรคxa pรฅ lรฅng sikt. Att anvรคnda mer effektiva och samtidiga verktyg, samt att vara enkel (jag hรคvdar att wheezy.web รคr enkel fรถr sin prestanda), sparar pengar och gรถr att projektet skalas lรคngre utan att byta sprรฅk. I slutรคndan finns allt i pengarna som man mรฅste betala fรถr din server. Det finns vรคldigt kรคnda webbplatser i PHP, nรคr PHP har dรฅliga prestanda... Men hur lรถser de det problemet? Kรถper bรคttre servrar. Med det andra tillvรคgagรฅngssรคttet lรถses det genom att programmera bรคttre och spara resurser :P.
Jag รคr ledsen att jag har gรฅtt sรฅ lรฅngt. Jag blir vรคldigt lรคtt passionerad xDDD. Hรคlsningar!
Jag fรถrstod perfekt vad du menar, men just pรฅ grund av det du nรคmner, om ett projekt tenderar att vรคxa eller inte, finns det frรฅn bรถrjan med wheezy inget databaslager.
Enligt min synvinkel รคr det bรคst att inte gifta sig med nรฅgot sprรฅk. Om du vill ha samtidighet kan du anvรคnda Node ocksรฅ, eftersom dess motor kรถrs i C.
Det du nรคmner om prestanda รคr inte bara att skala vertikalt (fallet med PHP), Facebook erbjuder till exempel HHVM, som jag har lรคst (ej testat) som fรถrbรคttrar prestandan med 50% och detta รคr inte att kรถpa servrar. Vanligt PHP utan cachning av lager och/eller andra sรคtt att optimera รคr lika "dรฅligt" som alla andra sprรฅk utan det senare, och jag sรคger dรฅligt fรถr att ge dem ett namn, det รคr inte bara "bรคttre programmering".
Skรฅl! ๐
Lรฅt oss se, det som inte finns รคr ett abstraktionslager. Men du anvรคnder motsvarande bibliotek eller modul fรถr att arbeta med din databas och utanfรถr finns det inget mer mysterium. Web2Pys abstraktionslager รคr till exempel vรคldigt enkelt, men prestandan sjunker dramatiskt eftersom du inte ens kan skriva optimerad SQL. Allt finns i Python; enkelt, men i utbyte mot prestanda.
Jag รคr bekant med HHVM och det รคr just dรคrfรถr sprรฅk som PHP suger fรถr modern tid; om Facebook fanns i Haskell eller Erlang skulle det inte finnas nรฅgot behov av att skapa HHVM. Anvรคnd cache, komprimera filerna som skickas och tas emot osv. รคr sjรคlvklara aspekter av varje utveckling. Problemet รคr att verktyget mรฅste mรคta sig :). Och det finns verktyg som inte ger det. Det bรคsta exemplet pรฅ detta รคr JavaScript... I sรฅ fall finns det รฅtminstone underverk som CoffeeScript, Dart, etc. som kompilerar till JS.
Hรคlsningar!
Perfekt! ๐
Bara en sak, facebook om du anvรคnder haskell, nรคrmare bestรคmt Haxl ๐
Jo, jag anvรคnder web2py mycket, jag hรฅller med om att det inte รคr det snabbaste ramverket, men det riktmรคrket verkar lite malplacerat, รคnnu mer nรคr vi pratar om 3 รฅr sedan sรฅ รคr web2py hello mude-applikationen vรคldigt laddad jรคmfรถrt med andra ramverk, men jag har รคrligt talat inte upplevt den dรคr enorma skillnaden i prestanda mellan mina applikationer skrivna i web2py och django.
Fรถrresten, i web2py kan du skriva SQL fรถr att utfรถra frรฅgorna direkt.
Hรคlsningar.
Du sรคger det snabbaste webbramverket, men du visar inga exempel och andra nyckelfaktorer, som utveckling, produktivitet, dokumentation. Eftersom django finns sรฅ vet jag inte varfรถr det verkar vara ett brott att inte anvรคnda detta :p
โ Det finns redan exempel i dokumentationen. Ocksรฅ pรฅ deras BitBucket-sida: https://bitbucket.org/akorn/wheezy.web/src/tip/demos/
โ Nรคr det gรคller utveckling och produktivitet sรฅ tycker jag personligen att det รคr ett bra alternativ att sammanfatta det i "enkelhet". Vad รคr รคnnu enklare och enklare ramverk? Klar. Men inte med en sรฅdan prestation.
โ Jag har lagt lรคnken till dokumentationen i artikeln xDDD.
โ Varfรถr jag sรคger att det รคr ett brott รคr fรถr att jag anser att en webbsida ska vara sรฅ effektiv som mรถjligt, pรฅ alla sรคtt. Som jag nรคmnde tidigare sรฅ finns det enklare att anvรคnda ramverk, men att anvรคnda wheezy.web รคr inte heller C-programmering.Du mรฅste bara fรถrsรถka hรฅrdare :).
Hรคlsningar ^^
Fรถrresten, om nรฅgon รคr fรถr lat fรถr att ta reda pรฅ det och tror att Wheezy Web bara รถkar antalet fรถrfrรฅgningar per sekund... Hรคr รคr nรฅgra fler riktmรคrken:
http://paste.desdelinux.net/5128 (DesdeLinuxs skrรคppostfilter lรฅter mig inte lรคgga sรฅ mรฅnga lรคnkar)
Jag ber om ursรคkt fรถr att jag inte har tagit med dem tidigare. Jag trodde att det rรคckte med en fรถr att vรคcka nyfikenhet xD. Hรคlsningar!
Sรฅ lรฅngt nรถjd med Django.
Ehh varje gรฅng jag lรคser dessa saker gรถr det mig arg, jag trodde att det bara var med php-ramverken (Symfony,Yii,CondeIgniter,Phalconโฆโฆโฆwdf!!). Om Django redan har en (ganska stor) community och รคr en utmรคrkt ram, varfรถr istรคllet fรถr att slรถsa tid pรฅ att uppfinna hjulet igen, gรฅ inte med i django.@Lajto-teamet i din konversation med wheezy.web-fรถrfattaren varfรถr frรฅgar du honom inte om du har aldrig tรคnkt pรฅ att gรฅ med i django-teamet, fรถr helvete. Skรฅl..
Det รคr att รคven om bรฅda รคr webbramverk har de vรคldigt olika tillvรคgagรฅngssรคtt. Django รคr tung, den har mycket kod, medan wheezy.web รคr lรคtt och satsar pรฅ enkelhet och optimering. Sรฅ vitt jag vet รคr wheezy.web det enda Python-webbramverket som verkligen รคr modulรคrt (vilket innebรคr att den bryter all sin kod i separata delar som alla kan fungera oberoende). Den har mรฅnga funktioner som skiljer den frรฅn resten.
Varfรถr inte komma in pรฅ Django, sรคger du? Fรถr att Django har designats med helt andra tillvรคgagรฅngssรคtt. Hur tillรคmpar du en modulรคr design pรฅ Django? Det skulle behรถva gรถras om praktiskt taget frรฅn grunden! Samma sak med mรฅnga andra frรฅgor.
Jag fรถrstรฅr att "bรคttre ett enda ramverk som fungerar bra med en stor gemenskap"-kรคnsla, men det รคr inte sรฅ lรคtt. Sรฅ att du fรถrstรฅr mig, fรถr att skapa en ytlig association, รคr Django som om det vore Debian och wheezy.web som om det vore... Arch? gentoo? Det รคr definitivt ett dรฅligt exempel, men jag tror att du fรถrstรฅr xDDD.
Hรคlsningar!
Vad sรคgs om Lajto, hej, jag gรถr en app och jag lรคste wheezy.web-dokumentationen och det รคr det fรถrsta webbramverket i python som jag har fรถrstรฅtt fรถrsta gรฅngen ๐ Du fรถrstรฅr, jag har inte sรฅ mycket kunskap om nรคtverk och webb, men jag har en speciell attraktion till programmering.
Kan du hjรคlpa mig att รคndra hej vรคrlden sรฅ att den blir en offentlig server? Kanske รคr det en vรคldigt dum frรฅga, fรถrlรฅt, men jag hittar inte i dokumentationen hur man gรถr.
En annan frรฅga, ๐ i get- och post-metoderna, hur returnerar jag information som inte รคr en html-sida, returnerar jag information som den รคr? som en strรคng eller en lista eller vilken datatyp som helst. Klienten en app pรฅ Android.
Hej Ulises! Jag รคr sรฅ glad att du provar wheezy.web :D.
Om det du sรคger rekommenderar jag starkt att du inte monterar din egen struktur. Den som Andriy rider รคr ganska bra, sรฅ jag rekommenderar att du fรถljer den. I artikeln finns tvรฅ lรคnkar till Andriys blogg dรคr han fรถrklarar stegen med i18n och utan i18n. Om du tycker att det รคr lite fรถrvirrande fรถrklarar jag hur man gรถr det utan i18n nedan:
รppna en terminal och kรถr dessa fyra kommandon (ersรคtt "test-web" med vilket mappnamn du vill ha fรถr ditt projekt):
wget https://bitbucket.org/akorn/wheezy.web/downloads/quickstart-empty.zip
packa upp quickstart-empty.zip
mv snabbstart-tom test-webb
rm quickstart-empty.zip
Om du vill anvรคnda PIL, รคndra filen setup.py och avkommentera motsvarande kod. Nรคr du รคr redo kรถr du fรถljande tre kommandon:
test-webb-cd
gรถra env
env/bin/easy_install uwsgi
Din server รคr redan konfigurerad. Om du vill gรถra en snabb benchmark fรถr att se om det fungerar, medan du รคr inne i mappen, kรถr du:
gรถra test nรคs-kรฅpa benchmark
Jag rekommenderar att du gรฅr till "etc/development.ini" och รคndrar "limit-as=120" till "limit-as=512". Detta รคr hur mรฅnga MB RAM uWSGI kommer att "รคta upp", sรฅ i framtiden kan det utรถkas om det behรถvs.
Slutligen, varje gรฅng du vill รถppna din server, leta upp dig sjรคlv i din projektmapp och kรถr:
gรถra uwsgi
Angรฅende de andra frรฅgorna... Som standard รคr servern instรคlld att kรถras pรฅ localhost. Om du vill gรถra den offentlig, eftersom du redan har den redo och vill anvรคnda den pรฅ en fysisk server i produktion, skulle det rรคcka att รถppna "src/app.py" och hitta fรถljande: make_server(", 8080, huvud). Den fรถrsta parametern รคr en tom strรคng, eller hur? Tja, dรคr lรคgger du IP:n fรถr din server. Den andra parametern รคr porten du vill anvรคnda, som som standard รคr 8080.
Till sist, vad du sรคger om att returnera nรฅgot som inte รคr HTML, det kan du sรฅklart! I dokumentationen fรถrklarar de hur man returnerar allt: https://pythonhosted.org/wheezy.web/userguide.html#web-handlers
Med vรคnliga hรคlsningar! Allt du sรคger till mig ;).
Tack sรฅ mycket Lajto, du klargjorde verkligen mina tvivel, jag hade fรถrsรถkt med django men som jag sa รคr jag ingen systemingenjรถr och jag tror att django ger mycket mer รคn vad jag behรถvde, anvรคnd wheezy.web fรถr att testa en androidapplikation och kommunicera med en server. Nรฅgot vรคldigt enkelt men ganska snabbt och praktiskt. Hej, en frรฅga till, nyligen sรฅg jag ett stort tjafs รถver http/2, hur vet jag vilket protokoll wheezy.web fungerar pรฅ? Kan jag skapa en server som anvรคnder http/2 pรฅ wheezy.web? Eller rekommendera mig en bok, blogg, handledning som รคr i รคpplen som kan fรถrklara mig om hela frรฅgan om nรคtverk och kommunikation. Tack igen.
Hej igen Ulises ^^.
HTTP/2 รคr vรคldigt nyligen och fรถr ytterligare 1 รฅr kommer det inte att bรถrja antas pรฅ allvar, sรฅ bry dig inte om det :). Om du vill ha sรคkerhet, anvรคnd HTTPS och det รคr allt.
Jag รคr inte sรคker pรฅ vad Wheezy Web anvรคnder fรถr HTTP, sรฅ jag antar att det รคr WSGI.
En hรคlsning!
Fรถrresten, en liten sak. Vissa distros fรฅr ett VARNING-meddelande om .python-eggs. Inget hรคnder om det dyker upp, men om du tycker att det รคr irriterande kan du ta bort det med:
chmod go= ~/.python-รคgg
Hรคlsningar!
Jag anvรคnder Django, men jag ska kolla dokumentationen fรถr att se vad som hรคnder. Tack fรถr att du delar med dig. Hรคlsningar
Det kan anvรคndas frรฅn Windows!!!, finns det nรฅgon handledning??
tack
Hej, vi har mycket erfarenhet av Python. Det verkar fรถr mig att de ror mot strรถmmen. Det bรคsta som nรฅgonsin uppfunnits fรถr detta sprรฅk รคr Django. Du kan gรถra statistik och konsultera hundratals programmerare frรฅn hela vรคrlden, det kommer att ge dig mer รคn 80%, de flesta av dem har inte fel. Om de ror eller simmar mot strรถmmen kommer de fรถrr eller senare att drunkna...