[Programado] La plej rapida Python-interreta kadro: wheezy.web

wheezy_web_logo

wheezy.web ĝi ne havas emblemon; Mi faris la bildon en GIMP.

Longe mi ĉesis programi en Python, sed tio ne malhelpas min dividi la te technologiesnikojn, kiujn mi konas kun vi;). Antaŭ iom da tempo mi serĉis la "plej bonan" retkadron en Python, ĉar tiu, kiun mi uzis (Web2Py), estis malrapide malrapida. Mia esplorado kondukis min al wheezy.web; tiuj, kiuj konas lin, certe faris tion per la spektakla referenco farita de la aŭtoro en sia blogo:

python-fastest-web-framework

Mi scias, 25.000 petoj sekunde kompare kun la resto de kadroj ĝi estas vera enirpermesilo. Mi mem uzis wheezy.web dum iom da tempo kaj mi devas diri, ke ĝi estas vera artaĵo. Kie ajn vi rigardas ĝin: rapideco, simpleco, sekureco ... Ĉio. Kaj supre ĝi estas verko de ununura homo: Andriy Kornatskyy.

  • Ĝi funkcias kun python 2, python 3 y pypy. Eĉ se 3 donas pli bonan rendimenton, estas preferinde daŭre uzi 2 ĝis 3 estos sufiĉe matura.
  • Ĝia dezajno estas Modula, do wheezy.web estas pli da aferoj: wheezy.ŝablono, wheezy.html, wheezy.sekureco... Uzu la partojn, kiujn vi volas.
  • dokumentado simpla kaj facile komprenebla.
  • Aŭtomata HTML-optimumigo (kunpremas ĝin tiel ke ĝi okupas malpli sen uzi eksterajn ilojn).
  • Kiel ne povus esti alie, ĝi estas libera programaro kaj malfermfonteco ; D.
  • ktp ...

En la blogo de Andriy estas bonegaj lerniloj por instali wheezy.web sekigi o kun i18n (pluraj lingvoj); ankaŭ klarigas kiel uzi wheezy.web kun Nginx. La malavantaĝo de ĉiuj liaj lerniloj estas tio supozu, ke vi uzas Debian, ĉar li ne testis pri aliaj distroj.

Se vi uzas Fedora kaj vi interesiĝas wheezy.web, vi bonŝancas! Jen la komando, kiu instalos la necesajn pakaĵojn por povi sekvi ĝiajn lernilojn:

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

La lernilo, kiun Andriy proponas instali wheezy.web kun Nginx ĝi uzas skripton desegnitan specife por Debian, do vi devos fari ĝin mem se vi uzas alian sistemon. En mia kazo uWSGI sufiĉas por mi, do mi neniam provis ĝin.

La vero estas tio ekzistanta wheezy.web Mi trovas krimon uzi alian kadron, do se vi laboras kun Python, rigardu ĝin almenaŭ! La sola malavantaĝo atribuebla al ĝi estas, ke ĝi ne alportas abstraktan tavolon por faciligi laboron kun datumbazoj (nek ĝi bezonas, sed ekzistas homoj, kiuj ŝatas ĝin).

Kaj jen ĉio. Mallonga, sed trafa artikolo. Mi promesas alporti pli mojosajn teknologiojn! Ĝis revido ~.

Cetere, kuriozaĵo, ĉu vi scias, kial ĝi nomiĝas "susura"? Andriy estas fervorulo de Debiano. Mi lasas ĝin tie;).


La enhavo de la artikolo aliĝas al niaj principoj de redakcia etiko. Por raporti eraron alklaku Ĉi tie.

22 komentoj, lasu la viajn

Lasu vian komenton

Via retpoŝta adreso ne estos eldonita. Postulita kampojn estas markita per *

*

*

  1. Respondeculo pri la datumoj: Miguel Ángel Gatón
  2. Celo de la datumoj: Kontrola SPAM, administrado de komentoj.
  3. Legitimado: Via konsento
  4. Komunikado de la datumoj: La datumoj ne estos komunikitaj al triaj krom per laŭleĝa devo.
  5. Stokado de datumoj: Datumbazo gastigita de Occentus Networks (EU)
  6. Rajtoj: Iam ajn vi povas limigi, retrovi kaj forigi viajn informojn.

  1.   Bruno cascio diris

    Efikeco ne estas la sola faktoro. Kompare kun Django, ĝi estas sufiĉe nelegebla. Kaj honeste, la 25000 petoj sekunde vidiĝu en agado, sed mi preferas resti kun 15000 (django) por skribi sane, kaj la resto de la laboro delegas al la infrastrukturo, kiu VERE estas tiu, kiu ricevos aŭ ne, 25000 petoj.

    Saluton! Dankon pro la datumoj 🙂

    1.    Bruno cascio diris

      Necesas diri, ke mi povas uzi malnovajn versiojn de aliaj kadroj ...

      1.    lajto diris

        La referenca artikolo estas de 2012. Li modifis ĝin kaj pligrandigis ĝin denove en 2013 kaj li mem specifis, ke ili estas de tiu jaro: «Plej novaj disponeblaj versioj ekde ĉi tiu skribo (15 marto 2013)»

    2.    lajto diris

      La nelegeblecon, kiun vi mencias, mi ne pensas, estas tiel malbona. Mi komprenas, ke oni ofte serĉas facilecon de programado, sed mi ne pensas, ke ekzistas vere konsiderindaj diferencoj. Mi uzis Web2Py dum jaro, kaj mi certigas vin, ke ĝi estas unu el la plej facile uzeblaj kadroj haveblaj. Kompreneble ĝia agado estas terura multmaniere ... En la referenca artikolo Massimo Di Pierro mem (kreinto de Web2Py) havas debaton kun Andriy, en kiu li fine konfesas, ke estas multe por plibonigi; parolante kun Andriy ĉe IRC, li diris al mi "estas vaste akceptita filozofio meti ĉion en kadrojn kaj ŝveligi ilin per trajtoj eĉ se plej multaj ne estas uzataj", kaj kiel li pravis ...

      Pri tio, kion vi diras pri la infrastrukturo, mi parte dividas tion, kion vi diras; 10.000 de diferenco estas MULTA, precipe kiam ni parolas pri la plej populara kaj matura kadro kontraŭ tre freŝa kaj malmulte konata. Mia aliro estas ĉiam kombini maksimuman efikecon kun maksimuma produktiveco, kaj mi pensas, ke wheezy.web plej bone sukcesas. Mi uzis Web2Py (la plej), Django, Pyramid kaj wheezy.web kaj mi certigas vin, ke ĝi estas senekzempla. Post kiam vi adaptiĝas al lia agmaniero, vi ne malligas vin de li. La solaj avantaĝoj de Django estas la granda komunumo, kiun ĝi havas kaj la rimedoj, kiuj estas en la tuta interreto; tio estas: facileco. wheezy.web estas sufiĉe nova kompare, kaj tre malmultaj homoj scias pri ĝi; se vi facilas, pli bone Web2Py aŭ Django xD.

      Mi ne volas plivastiĝi, sed kiam ni parolas pri petoj en sekundo, ni parolas pri samtempeco. Se oni serĉas samtempecon, Python ne estas la taŭga lingvo. Por tio celas aliaj lingvoj kiel Erlang aŭ Haskell (kaj se vi rapidas min, Rust). Sed ĝuste tial impresas, ke wheezy.web, okupante tiom malmulte da kodo, estante la laboro de homo en sia libera tempo kaj serio de aliaj faktoroj, sukcesis atingi tian agadon.

      Mi komprenas kion vi diras pri "sana verkado", sed vi neniam scias kiom multe projekto povas kreski longtempe. Uzante pli efikajn kaj samtempajn ilojn, kaj ankaŭ simplajn (mi asertas, ke wheezy.web estas simpla por la prezentado), ŝparu monon kaj pligrandigu la projekton pli longe sen ŝanĝi la lingvon. Finfine ĉio estas en la mono, kiun vi devas pagi por via servilo. Estas tre famaj retejoj en PHP, kiam PHP estas terura en rendimento ... Sed kiel vi solvas tiun problemon? Aĉetante pli bonajn servilojn. Kun la alia aliro, ĝi estas solvita per pli bona programado kaj ŝparado de rimedoj: P.

      Mi bedaŭras esti tiel etendinta min. Mi tre facile pasias pri xDDD. Saluton!

      1.    Bruno cascio diris

        Mi perfekte komprenis, kion vi celas, sed ĝuste pro tio, kion vi mencias, se projekto emas kreski aŭ ne, ĉar ni iras kun wheezy, ne ekzistas datumbaza tavolo.

        Laŭ mia vidpunkto, estas plej bone ne edziĝi al iu ajn lingvo. Se vi volas samtempecon, vi povas uzi Nodon ankaŭ, ĝia motoro funkcias en C.

        Kion vi mencias pri agado, tio estas ne nur skalo vertikale (la kazo de PHP), Facebook ekzemple ofertas HHVM, kiun mi legis (ne testis), kiu plibonigas rendimenton je 50% kaj tio ne aĉetas servilojn. Ebena PHP sen kaŝmemoraĵoj kaj / aŭ aliaj manieroj optimumigi estas tiel "malbona" ​​kiel iu ajn alia lingvo sen ĉi-lasta, kaj mi volas diri malbone doni al ili nomon, ĝi ne estas nur "pli bona kodo".

        Saluton! 🙂

      2.    lajto diris

        Ni vidu, kio ne ekzistas, estas tavolo de abstraktado. Sed vi uzas la respondan bibliotekon aŭ modulon por labori kun via datumbazo kaj ekstere, ne plu estas mistero. La abstrakta tavolo Web2Py estas tre simpla, ekzemple, sed rendimento draste falas, ĉar vi eĉ ne povas skribi optimumigitan SQL. Ĉio estas en Python; facila, sed kontraŭ rendimento.

        Mi konas HHVM kaj ĝuste tial lingvoj kiel PHP estas teruraj por modernaj tempoj; se Facebook estus en Haskell aŭ Erlang, ne estus necese krei HHVM. Uzu kaŝmemoron, kunpremu dosierojn senditajn kaj ricevitajn, ktp. ili estas evidentaj aspektoj de iu ajn evoluo. La afero estas, ke la ilo devas mezuri :). Kaj estas iloj, kiuj ne provizas ĝin. La plej bona ekzemplo pri tio estas Ĝavoskripto ... Tiukaze almenaŭ estas mirindaĵoj kiel CoffeeScript, Dart, ktp. kiuj kompiliĝas al JS.

        Salutoj!

      3.    Bruno cascio diris

        Perfekta! 🙂

        Nur unu afero, facebook se vi uzas haskell, pli precize Haxl 🙂

      4.    ĉesu diris

        Nu, mi multe uzas web2py, mi konsentas, ke ĝi ne estas la plej rapida kadro, sed tiu referenco ŝajnas iom maloportuna, des pli kiam ni parolas pri antaŭ 3 jaroj, la salutmuta web2py-programo estas tre ŝarĝita kompare kun aliaj kadroj, sed mi sincere ne spertis tiun teruran diferencon de rendimento inter miaj programoj verkitaj en web2py kaj django.

        Cetere, en web2py se vi povas skribi SQL por plenumi la demandojn rekte.

        Salutojn.

  2.   urKh diris

    La plej rapidan retejon vi diras, sed vi ne montras ekzemplon kaj aliajn ŝlosilajn faktorojn, kiel disvolviĝo, produktiveco, dokumentado. Kun django ekzistanta, mi ne scias kial ŝajnas esti krimo ne uzi ĉi tion: p

    1.    lajto diris

      - Estas jam ekzemploj en la dokumentado. En lia paĝo BitBucket ankaŭ: https://bitbucket.org/akorn/wheezy.web/src/tip/demos/
      - Pri disvolviĝo kaj produktiveco, mi persone pensas, ke resumi ĝin per "simpleco" estas bona eblo. Kio estas ankoraŭ pli simplaj kaj pli facilaj kadroj? Klara. Sed ne kun tiom multe da agado.
      - Mi metis la ligon al la dokumentado en la artikolon xDDD.
      - Kial mi diras, ke ĝi estas krimo, estas ĉar mi kredas, ke retpaĝo devas esti kiel eble plej efika ĉiel. Kiel mi menciis antaŭe, estas kadroj pli facile uzeblaj, sed uzi wheezy.web ankaŭ ne programas en C. Vi nur devas peni pli :).

      Salutojn ^^.

  3.   lajto diris

    Parenteze, por se iu pigras ekscii kaj pensas, ke Wheezy Web nur venkas en petoj sekunde ... Jen kelkaj pliaj referencoj:

    http://paste.desdelinux.net/5128 (La spam-filtrilo FromLinux ne permesas al mi meti tiom da ligoj)

    Mi pardonpetas, ke mi ne inkluzivis ilin antaŭe. Mi pensis, ke tiu sufiĉas por tiri scivolemon xD. Saluton!

  4.   fenriz diris

    Ĝis nun feliĉa kun Django.

    1.    oklaja diris

      Ehh, kiam mi legas ĉi tiujn aferojn, tio kolerigas min, mi pensis, ke ĝi estas nur kun PHP-kadroj (Symfony, Yii, CondeIgniter, Phalcon ...... wdf !!). Se Django jam havas komunumon (sufiĉe grandan) kaj estas bonega kadro, kial anstataŭ perdi tempon reinventante la radon ne aliĝu al la django-teamo. @ Lajto en via konversacio kun la aŭtoro de wheezy.web kial vi ne demandas lin vi neniam pensis aliĝi al la django-teamo, diable. Hura ...

      1.    lajto diris

        Kvankam ambaŭ estas interretaj kadroj, ili havas tre malsamajn alirojn. Django estas peza, ĝi havas multan kodon, dum wheezy.web estas malpeza, ĝi celas simplecon kaj optimumigon. Laŭ mia scio, wheezy.web estas la sola vere modula Python-retejo-kadro (tio estas, ĝi dividas vian tutan kodon en malsamajn partojn, kiuj povas funkcii sendepende). Ĝi havas multajn karakterizaĵojn, kiuj diferencigas ĝin de la resto.

        Kial ne aliĝi al Django, vi diras? Ĉar Django estis desegnita kun tute malsamaj aliroj. Kiel apliki modulan desegnon al Django? Ĝi devus esti refarita praktike de nulo! Lin sama kun multaj aliaj numeroj.

        Mi komprenas tiun senton "pli bone unu kadro, kiu bone funkcias kun granda komunumo", sed ĝi ne estas tiel facila. Por ke vi komprenu, farante supraĵan asocion, Django estas kvazaŭ Debian kaj wheezy.web kvazaŭ ĝi estus ... Arch? Gentoo? Sendube malbona ekzemplo, sed mi pensas, ke xDDD estas komprenata.

        Salutoj!

  5.   Ulises diris

    Kiel pri Lajto, hej, mi faras programon kaj mi legis la dokumentadon de wheezy.web kaj ĝi estas la unua python-reteja kadro, kiun mi komprenis la unuan fojon 🙂 Vidu, mi ne havas multan scion pri retoj kaj retejo, sed havas specialan allogon al programado.
    Ĉu vi povus helpi min kiel modifi la saluton por fari ĝin publika servilo? Eble ĝi estas tre stulta demando, pardonu, sed mi ne povas trovi en la dokumentado kiel fari ĝin.
    Alia demando, 😉 en la get kaj afiŝaj metodoj, ĉar mi redonas informojn, kiuj ne estas html-paĝo, ĉu mi redonas informojn kiel estas? kiel ĉeno aŭ listo aŭ ia speco de datumoj. La kliento estas programo en android.

    1.    lajto diris

      Saluton Ulises! Mi tre ĝojas, ke vi provas wheezy.web: D.

      Pri tio, kion vi komentas, mi forte rekomendas, ke vi ne muntu vian propran strukturon. Tiu Andriy-veturoj estas sufiĉe bona, do mi rekomendas, ke vi sekvu ĝin. En la artikolo estas du ligoj al la blogo de Andriy, kie li klarigas la paŝojn per i18n kaj sen i18n. Se ĝi iomete konfuzas, mi klarigos kiel fari ĝin sen i18n sube:

      Malfermu fina stacion kaj lanĉu ĉi tiujn kvar komandojn (anstataŭigu "test-web" per la nomo de la dosierujo, kiun vi volas por via projekto):

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

      malzipigu quickstart-empty.zip

      mv rapidstart-malplena test-retejo

      rm quickstart-empty.zip

      Se vi volas uzi PIL, modifu la dosieron setup.py kaj komentu la respondan kodon. Kiam vi estos preta, rulu la jenajn tri komandojn:

      retejo-testo-cd

      fari env

      env / bin / easy_install uwsgi

      Via servilo estas jam muntita. Se vi volas fari rapidan referencon por vidi ĉu ĝi funkcias, estante ene de la dosierujo, vi kuras:

      provu naz-kovrilan referencon

      Mi rekomendas vin iri al "etc / development.ini" kaj ŝanĝi "limit-as = 120" al "limit-as = 512". Jen kiom da MB da RAM uWSGI "konsumos", do estonte ĝi povus esti pliigita se necese.

      Fine, ĉiufoje, kiam vi volas malfermi vian servilon, sufiĉus lokalizi vin en via projekta dosierujo kaj plenumi:

      fari uwsgi

      Pri la aliaj demandoj ... Defaŭlte, la servilo estas programita por funkcii per localhost. Se vi volas publikigi ĝin, ĉar vi jam havas ĝin preta kaj volas uzi ĝin sur fizika servilo en produktado, simple malfermu "src / app.py" kaj trovu la jenon: make_server (", 8080, main). La unua parametro estas malplena ĉeno, ĉu ne? Nu, tie vi metas la IP de via servilo. La dua parametro estas la haveno, kiun vi volas uzi, kiu defaŭlte estas 8080.

      Fine, kion vi diras pri redono de io alia ol HTML, kompreneble ĝi povas! En la dokumentado ili klarigas kiel resendi ĉion: https://pythonhosted.org/wheezy.web/userguide.html#web-handlers

      Saluton! Ĉion, kion vi diras al mi;).

      1.    Ulises diris

        Koran dankon Lajto, vi vere klarigis miajn dubojn, mi provis kun django sed kiel mi diris al vi, ke mi ne estas inĝeniero pri sistemoj kaj django mi pensas, ke ĝi alportas multe pli ol mi bezonis, uzu wheezy.web por testi aplikaĵon en android kaj komuniku ĝin kun servilo. Io tre simpla sed sufiĉe rapida kaj praktika. Hej plia demando, antaŭ nelonge mi vidis, ke estis granda tumulto kun http / 2, kiel mi scias, en kio protokolo wheezy.web funkcias? Ĉu mi povas krei servilon, kiu uzas http / 2 en wheezy.web? Aŭ rekomendu al mi libron, blogon, lernilon en blokoj, kiuj povas klarigi la tutan aferon pri retoj kaj komunikadoj. Redankon.

      2.    lajto diris

        Saluton denove Ulises ^^.

        HTTP / 2 estas tre freŝa kaj ne estos serioze adoptita dum alia jaro, do ne ĝenu ĝin :). Se vi volas sekurecon, uzu HTTPS kaj jen.

        Mi ne certas, kion Wheezy Web uzas por HTTP, do mi supozas, ke ĝi estos WSGI.

        Salutojn!

  6.   lajto diris

    Cetere, iomete nenio. En iuj distro aperas AVERTA mesaĝo pri .python-eggs. Nenio okazas se ĝi aperas, sed se ĝi ĝenas vin, vi povas forigi ĝin per:

    chmod go = ~ / .python-eggs

    Salutoj!

  7.   diego diris

    Mi uzas Django, sed mi kontrolos la dokumentaron por vidi kiel ĝi funkcias. Dankon pro dividado. Saluton

  8.   JDVillegas diris

    Ĝi uzeblas de fenestroj !!!, ĉu estas lernilo ??

    danke

  9.   lalita diris

    Saluton, ni havas multan sperton pri Python. Ŝajnas al mi, ke ili remas kontraŭ la fluo. La plej bona inventitaĵo por ĉi tiu lingvo estas Django. Ili povas fari statistikon kaj konsulti centojn da programistoj el la tuta mondo, ĝi donos al vi pli ol 80%, la plej multaj el ili ne eraras. Se ili remas aŭ naĝas kontraŭ la fluo, pli aŭ malpli frue ili dronos ...