[Programimi] Kuadri më i shpejtë i ueb Python: wheezy.web

wheezy_web_logo

gulçimë.ebebë nuk ka logo; Imazhin e kam bërë në GIMP.

Unë kam ndaluar programimin në Python për një kohë të gjatë, por kjo nuk më ndalon të ndaj teknologjitë që di me ju;). Disa kohë më parë u futa në kërkim të kornizës "më të mirë" të uebit në Python, pasi ajo që përdora (Web2Py) ishte djallëzisht e ngadaltë. Kërkimi im më çoi drejt gulçimë.ebebë; ata që e njohin me siguri e kanë bërë këtë përmes pikë referimi spektakolare e bërë nga autori në blogun e tij:

korniza python-më e shpejtë-web

E di, 25.000 kërkesa për sekondë krahasuar me pjesën tjetër të kornizave është një kalim i vërtetë. Unë e përdora veten gulçimë.ebebë për një kohë dhe duhet të them se është një vepër e vërtetë arti. Kudo që ta shikoni: shpejtësia, thjeshtësia, siguria ... Gjithçka. Dhe mbi të gjitha, është puna e një personi të vetëm: Andriy Kornatskyy.

  • Punon me Python 2, Python 3 y pypy. Megjithëse 3 jep performancë më të mirë, preferohet të vazhdoni të përdorni 2 derisa 3 të jetë pjekur mjaftueshëm.
  • Dizajni i saj është modulare, kështu gulçimë.ebebë janë më shumë gjëra: gulçimë.templar, gromësirë.html, gulçimë.siguri… Përdorni pjesët që dëshironi.
  • dokumentim e thjeshtë dhe e lehtë për t’u kuptuar.
  • Optimizimi automatik i HTML (e ngjesh në mënyrë që të marrë më pak pa përdorur mjete të jashtme).
  • Si mund të ishte ndryshe, është softuer falas dhe burim i hapur ; D.
  • etj ...

Në blogun e Andriy ka mësime të shkëlqyera për instaloj gulçimë.ebebë të thahet o me i18n (shumë gjuhë); gjithashtu shpjegon si te perdoret gulçimë.ebebë me Nginx. E keqja për të gjitha udhëzimet e tij është se supozoni se përdorni Debian, pasi ai nuk ka testuar në distro të tjera.

Nëse e përdorni Fedora dhe ju jeni te interesuar gulçimë.ebebë, ju jeni me fat! Këtu është komanda që do të instalojë paketat e nevojshme për të qenë në gjendje të ndiqni udhëzimet e saj:

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

Udhëzuesi që Andriy ofron të instalojë gulçimë.ebebë me Nginx përdor një skenar të krijuar posaçërisht për Debian, kështu që do të duhet ta bësh vetë nëse përdor një sistem tjetër. Në rastin tim, uWSGI më mjafton, kështu që nuk e kam provuar kurrë.

E vërteta është se ekzistuese gulçimë.ebebë Më duket si krim të përdorësh një kornizë tjetër, kështu që nëse punon me Python, hidhi një sy kësaj së paku! Disavantazhi i vetëm që mund t'i atribuohet është se nuk sjell ndonjë shtresë abstraksioni për të lehtësuar punën me bazat e të dhënave (as nuk ka nevojë, por ka njerëz që e vlerësojnë atë).

Dhe kjo eshte e gjitha. Një artikull i shkurtër, por i rëndësishëm. Unë premtoj të sjell teknologji më interesante! Shihemi

Nga rruga, një kuriozitet, e dini pse quhet "gulçim"? Andriy është një adhurues i Debian. E lë atje;).


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   Bruno cascio dijo

    Performanca nuk është faktori i vetëm. Krahasuar me Django, është mjaft e palexueshme. Dhe sinqerisht, 25000 kërkesa për sekondë duhet të shihen në veprim, por unë preferoj të qëndroj me 15000 (django) shkruaj shëndetshëm, dhe pjesa tjetër e punës delegat në infrastrukturë, e cila është me të vërtetë ajo që do të marrë ose jo , 25000 kërkesa.

    Gëzuar! Faleminderit për të dhënat

    1.    Bruno cascio dijo

      Eshtë e panevojshme të thuhet, për të referuar, unë përdor versione të vjetra të kornizave të tjera ...

      1.    lajto dijo

        Artikulli referues është i vitit 2012. Ai e modifikoi dhe zgjeroi përsëri në 2013 dhe ai vetë specifikoi se ato janë nga ai vit:

    2.    lajto dijo

      Lexueshmëria që përmend nuk mendoj se është aq e keqe. Unë e kuptoj që lehtësia e programimit shpesh kërkohet, por nuk mendoj se ka vërtet ndryshime të konsiderueshme. Kam përdorur Web2Py për një vit dhe ju siguroj se është një nga kornizat më të lehta për t'u përdorur në dispozicion. Sigurisht, performanca e tij është e tmerrshme në shumë mënyra ... Në artikullin referues vetë Massimo Di Pierro (krijuesi i Web2Py) zhvillon një debat me Andriy në të cilin ai më në fund pranon se ka shumë për të përmirësuar; duke folur me Andriy në IRC, ai më tha "ekziston një filozofi e pranuar gjerësisht për të vendosur gjithçka në korniza dhe për t'i fryrë ato me tipare edhe nëse shumica nuk përdoren", dhe sa kishte të drejtë ai ...

      Për atë që thua për infrastrukturën, pjesërisht ndaj atë që thua; 10.000 ndryshimi është shumë, veçanërisht kur flasim për kornizën më të popullarizuar dhe të pjekur kundrejt një kornize shumë të fundit dhe pak të njohur. Përqasja ime është gjithmonë të ndërthur efikasitetin maksimal me produktivitetin maksimal, dhe unë mendoj se wheezy.web e bën më së miri. Unë kam përdorur Web2Py (më së shumti), Django, Piramidë dhe wheezy.web dhe ju siguroj se është i pakonkurrueshëm. Sapo t’i përshtateni mënyrës së tij të të bërit gjëra, nuk shkëputeni prej tij. Përparësitë e vetme të Django janë komuniteti i madh që ka dhe burimet që janë në të gjithë internetin; që do të thotë: lehtësi. wheezy.web është mjaft e re në krahasim, dhe shumë pak njerëz e dinë për të; nëse shkoni lehtë, më mirë Web2Py ose Django xD.

      Unë nuk dua të zgjerohem, por kur flasim për kërkesa në sekondë flasim për njëkohësi. Nëse kërkohet njëkohësi, Python nuk është gjuha e përshtatshme. Për këtë janë gjuhët e tjera si Erlang ose Haskell (dhe nëse më nxitoni, Rust). Por pikërisht për këtë arsye është mbresëlënëse që wheezy.web, duke zënë kaq pak kod, duke qenë vepër e një personi në kohën e tyre të lirë dhe një sërë faktorësh të tjerë, ka arritur të arrijë një performancë të tillë.

      Unë e kuptoj atë që ju thoni në lidhje me "shkrim të shëndetshëm", por ju kurrë nuk e dini se sa një projekt mund të rritet në afat të gjatë. Përdorimi i mjeteve më efikase dhe bashkëkohore, si dhe të thjeshtë (unë them se wheezy.web është e thjeshtë për performancën që ka), kurseni para dhe bëni shkallën e projektit për më gjatë pa ndryshuar gjuhën. Në fund të fundit gjithçka është në paratë që dikush duhet të paguajë për serverin e tij. Ka faqe shumë të famshme në PHP, kur PHP është e tmerrshme në performancë ... Por si e zgjidhni atë problem? Blerja e serverave më të mirë. Me qasjen tjetër, zgjidhet duke programuar më mirë dhe duke kursyer burime: P.

      Më vjen keq që jam zgjatur aq shumë. Unë jam shumë i pasionuar pas xDDD. Gëzuar!

      1.    Bruno cascio dijo

        Unë e kuptova në mënyrë të përsosur atë që ju thoni, por pikërisht për shkak të asaj që përmendni, nëse një projekt ka tendencë të rritet apo jo, pasi që ne shkojmë me wheezy nuk ka asnjë shtresë të dhënash.

        Sipas këndvështrimit tim, është më mirë të mos martohesh me asnjë gjuhë. Nëse dëshironi njëkohësi mund të përdorni Node gjithashtu, motori i tij funksionon në C.

        Ajo që përmendni për performancën nuk është vetëm shkallëzimi vertikalisht (rasti i PHP), Facebook për shembull ofron HHVM, të cilin unë e kam lexuar (jo i testuar) që përmirëson performancën me 50% dhe kjo nuk është blerja e serverave. Ta themi thjesht, PHP pa shtresa cache dhe / ose mënyra të tjera të optimizimit është po aq "e keqe" sa çdo gjuhë tjetër pa këtë të fundit, dhe dua të them keq për t'i dhënë një emër, nuk është thjesht "programim më i mirë".

        Gëzuar! 🙂

      2.    lajto dijo

        Le të shohim, ajo që nuk ka është një shtresë abstraksioni. Por ju përdorni bibliotekën ose modulin përkatës për të punuar me bazën tuaj të të dhënave dhe jashtë, nuk ka më mister. Shtresa e abstraksionit Web2Py është shumë e thjeshtë, për shembull, por performanca bie në mënyrë dramatike pasi nuk mund të shkruani as SQL të optimizuar. Gjithçka është në Python; e lehtë, por në këmbim të performancës.

        Unë e njoh HHVM dhe kjo është pikërisht arsyeja pse gjuhët si PHP janë të tmerrshme për kohët moderne; nëse Facebook do të ishte në Haskell ose Erlang nuk do të ishte e nevojshme të krijohej HHVM. Përdorni memorien memorie, kompresoni skedarët që dërgohen dhe merren, etj. ato janë aspekte të dukshme të çdo zhvillimi. Çështja është që mjeti duhet të matet :). Dhe ka mjete që nuk e sigurojnë atë. Shembulli më i mirë për këtë është JavaScript ... Në atë rast të paktën ka mrekulli si CoffeeScript, Dart, etj. të cilat përpilohen në JS.

        Përshëndetje!

      3.    Bruno cascio dijo

        E përsosur! 🙂

        Vetëm një gjë, facebook nëse përdorni haskell, më saktësisht Haxl

      4.    Pushoni dijo

        Epo, unë e përdor shumë web2py, pajtohem që nuk është korniza më e shpejtë, por kjo pikë referimi duket pak e pavend, aq më tepër kur flasim për 3 vjet më parë, aplikimi përshëndetje memec i web2py është shumë i ngarkuar në krahasim në kornizat e tjera, por sinqerisht nuk e kam provuar atë ndryshim të thellë në performancën midis aplikacioneve të mia të shkruara në web2py dhe django.

        Nga rruga, në web2py nëse mund të shkruani SQL për të kryer pyetjet direkt.

        Përshëndetje.

  2.   urKh dijo

    Kuadri më i shpejtë në internet që thoni, por nuk tregoni disa shembuj dhe faktorë të tjerë kryesorë, siç janë zhvillimi, produktiviteti, dokumentacioni. Django ekzistuese, nuk e di pse duket se është krim të mos përdorësh këtë: f

    1.    lajto dijo

      - Ka tashmë shembuj në dokumentacion. Në faqen e tij të BitBucket gjithashtu: https://bitbucket.org/akorn/wheezy.web/src/tip/demos/
      - Për zhvillimin dhe produktivitetin, unë personalisht mendoj se përmbledhja e tij në "thjeshtësi" është një mundësi e mirë. Cilat janë kornizat më të thjeshta dhe më të lehta akoma? Qartë. Por jo me kaq shumë performancë.
      - Unë kam vendosur lidhjen me dokumentacionin në artikullin xDDD.
      - Pse them se është një krim është sepse besoj se një faqe në internet duhet të jetë sa më efikase, në të gjitha mënyrat. Siç e përmenda më parë, ka korniza më të lehta për t'u përdorur, por përdorimi i wheezy.web nuk është as programim C. Thjesht duhet të përpiqesh më shumë :).

      Përshëndetje ^^.

  3.   lajto dijo

    Nga rruga, në rast se dikush është dembel për të zbuluar dhe mendon se Wheezy Web fiton vetëm në kërkesa për sekondë ... Këtu janë disa standarde më shumë:

    http://paste.desdelinux.net/5128 (filtri i spamit të DesdeLinux Nuk më lejon të vendos kaq shumë lidhje)

    Ju kërkoj falje që nuk i kam përfshirë më parë. Mendova se mjaftonte një për të tërhequr kuriozitetin xD. Gëzuar!

  4.   fenriz dijo

    Deri më tani i lumtur me Django.

    1.    okle dijo

      Ehh sa herë që lexoj këto gjëra më zemëron, mendova se ishte vetëm me kornizat php (Symfony, Yii, CondeIgniter, Phalcon ……… wdf !!). Nëse Django tashmë ka një komunitet (mjaft i madh) dhe është një kornizë e shkëlqyeshme pse në vend që të humbni kohë për të shpikur timonin mos u bashkoni me ekipin django. @ Lajto në bisedën tuaj me autorin e wheezy.web pse nuk e pyetni ju kurrë nuk keni menduar për t'u bashkuar me ekipin django, dreqi atë. Brohoritje ..

      1.    lajto dijo

        Edhe pse të dy janë korniza në internet, ato kanë qasje shumë të ndryshme. Django është i rëndë, ka shumë kod, ndërsa wheezy.web është i lehtë, i është përkushtuar thjeshtësisë dhe optimizimit. Për njohuritë e mia, wheezy.web është i vetmi kornizë me të vërtetë modulare në internet Python (domethënë, ai ndan të gjithë kodin e tij në pjesë të ndryshme që mund të punojnë në mënyrë të pavarur). Ka shumë karakteristika që e dallojnë atë nga pjesa tjetër.

        Pse të mos bashkohesh me Django, thua? Sepse Django është dizajnuar me qasje krejtësisht të ndryshme. Si e aplikoni një dizajn modular në Django? Do të duhej të ribëhej praktikisht nga e para! E njëjta gjë me shumë çështje të tjera.

        Unë e kuptoj se ndjenja "më mirë një kornizë e vetme që funksionon mirë me një komunitet të madh", por nuk është aq e lehtë. Vetëm kështu ta kuptoni, duke bërë një shoqatë sipërfaqësore, Django është sikur të ishte Debian dhe wheezy.web sikur të ishte ... Arch? Xhenet Padyshim një shembull i keq, por mendoj se xDDD kuptohet.

        Përshëndetje!

  5.   Ulises dijo

    Po Lajto, hej po bëj një aplikacion dhe lexoj dokumentacionin e wheezy.web dhe është korniza e parë në internet e python që e kuptova herën e parë 🙂 E shihni, unë nuk kam shumë njohuri për rrjetet dhe uebin, por unë kanë një tërheqje të veçantë për programimin.
    A mund të më ndihmoni se si ta modifikoj hello botën për ta bërë atë një server publik? Ndoshta është një pyetje shumë budalla, më falni, por unë nuk mund të gjej në dokumentacion se si ta bëj atë.
    Një pyetje tjetër, 😉 në metodat e marrjes dhe postimit, pasi kthej informacion që nuk është faqe HTML, a mund ta kthej informacionin siç është? si varg ose listë ose çfarëdo lloji të dhënash. Klienti një aplikacion në android.

    1.    lajto dijo

      Përshëndetje Ulises! Unë jam shumë i lumtur që jeni duke testuar gulçim.web: D.

      Për atë që komentoni, unë rekomandoj shumë që të mos montoni vetë strukturën tuaj. Një udhëtim me Andriy është mjaft i mirë, prandaj ju rekomandoj ta ndiqni. Në artikull ka dy lidhje me blogun e Andriy ku ai shpjegon hapat me i18n dhe pa i18n. Në rast se është pak konfuze, unë do të shpjegoj se si ta bëjmë atë pa i18n më poshtë:

      Hapni një terminal dhe ekzekutoni këto katër komanda (zëvendësoni "test-web" me emrin e dosjes që dëshironi për projektin tuaj):

      wget https://bitbucket.org/akorn/wheezy.web/downloads/quickstart-empty.zip

      zhbllokoj faststart- bosh.zip

      test-web i zbrazët i shpejtë i mv

      rm startst- bosh.zip

      Nëse dëshironi të përdorni PIL, modifikoni skedarin setup.py dhe ç'komentoni kodin përkatës. Pasi të jeni gati, ekzekutoni tre komandat e mëposhtme:

      test-ueb-cd

      bëj env

      env / bin / easy_instaloni uwsgi

      Serveri juaj është montuar tashmë. Nëse dëshironi të bëni një pikë referimi të shpejtë për të parë nëse funksionon, duke qenë brenda dosjes, ekzekutoni:

      bëni provë për krahasimin e hundës

      Unë ju rekomandoj të shkoni te "etc / development.ini" dhe të ndryshoni "limit-as = 120" në "limit-as = 512". Kjo është sa MB RAM uWSGI RAM do të "hajë", kështu që mund të rritet në të ardhmen nëse është e nevojshme.

      Më në fund, çdo herë që dëshironi të hapni serverin tuaj, do të ishte e mjaftueshme për të gjetur veten në dosjen tuaj të projektit dhe ekzekutoni:

      bëj uwsgi

      Për pyetjet e tjera… Si parazgjedhje, serveri është programuar të ekzekutohet në localhost. Nëse dëshironi ta bëni publik, sepse tashmë e keni gati dhe dëshironi ta përdorni në një server fizik në prodhim, thjesht hapni "src / app.py" dhe lokalizoni sa vijon: make_server (", 8080, kryesore). Parametri i parë është një varg bosh, apo jo? Epo, aty vendosni IP-në e serverit tuaj. Parametri i dytë është porti që dëshironi të përdorni, i cili si parazgjedhje është 8080.

      Më në fund, çfarë thoni për kthimin e diçkaje tjetër përveç HTML, natyrisht që mundeni! Në dokumentacion ata shpjegojnë se si të ktheni gjithçka: https://pythonhosted.org/wheezy.web/userguide.html#web-handlers

      Një përshëndetje! Çdo gjë që më thoni;).

      1.    Ulises dijo

        Faleminderit shumë Lajto, vërtet i sqarove dyshimet e mia, unë kisha provuar me django por siç të përmenda ty nuk jam inxhinier sistemesh dhe django mendoj se sjell shumë më tepër sesa ç'kisha të nevojshme, përdor wheezy.web për të provuar një aplikacion në android dhe komunikojeni atë me një server. Diçka shumë e thjeshtë, por mjaft e shpejtë dhe praktike. Hej edhe një pyetje, kohët e fundit pashë që kishte një bujë të madhe me http / 2, si mund ta di se në çfarë protokolli punon wheezy.web? A mund të krijoj një server që përdor http / 2 në wheezy.web? Ose më rekomandoni një libër, blog, tutorial që është në blloqe që mund të shpjegojnë tërë çështjen e rrjeteve dhe komunikimeve. Faleminderit perseri.

      2.    lajto dijo

        Përshëndetje përsëri Uliksi ^^.

        HTTP / 2 është shumë i fundit dhe nuk do të miratohet seriozisht edhe për 1 vit, kështu që mos u shqetësoni me të :). Nëse doni siguri, përdorni HTTPS dhe kaq.

        Nuk jam i sigurt se çfarë përdor Wheezy Web për HTTP, kështu që supozoj se do të jetë WSGI.

        Një përshëndetje!

  6.   lajto dijo

    Nga rruga, pak diçka nga asgjë. Në disa distro shfaqet një mesazh KUJDES rreth vezëve të pitonit. Asgjë nuk ndodh nëse shfaqet, por nëse e shihni të bezdisshme mund ta hiqni me:

    chmod shkoj = ~ / .piton-vezë

    Përshëndetje!

  7.   Diego dijo

    Po përdor Django, por do të kontrolloj dokumentacionin për të parë se si funksionon. Faleminderit për shpërndarjen. Brohoritje

  8.   JD Villegas dijo

    Mund të përdoret nga dritaret !!!, a ka ndonjë tutorial ??

    Falënderim

  9.   lalita dijo

    Përshëndetje, kemi shumë përvojë me Python. Më duket se po voziten kundër rrymës. Gjëja më e mirë e shpikur ndonjëherë për këtë gjuhë është Django. Ata mund të bëjnë një statistikë dhe të konsultohen me qindra programues nga e gjithë bota, kjo do t'ju japë më shumë se 80%, shumica e tyre nuk gabojnë. Nëse vozisin ose notojnë kundër rrymës, herët a vonë ata do të mbyten ...