9 geriausios „Python“ programos, skirtos kurti programas nuo mažų iki verslo

Python yra ir įdomus žaislas, ir bauginantis liepsnosvaidis. Tas pats pasakytina ir apie tai, ką galite padaryti su Python.


Pythoną mėgsta mėgėjai, mokslininkai ir architektai.

Tai yra velniškai lengva pradėti nuo darbo, jis turi aukštesnės eilės abstrakcijas ir metaprogramavimo galimybes kurti dideles ir sudėtingas sistemas, taip pat turi sunkvežimių apkrovas bibliotekų, kuriose galima atlikti beveik viską. Aišku, yra lygiavertiškumo ir stipraus rašymo būdo apribojimų, tačiau jūs galite jų išvengti.

Šiame straipsnyje apžvelgsime kai kuriuos geriausius „Python“ rėmus, kai reikia kurti dideles ir mažas žiniatinklio programas..

Django

Django „Framework“ atlaikė „Python“ bendruomenės internetinės sistemos išbandymą. Jei užpuolėte „Python“ kūrėją miego metu ir privertėte juos sukurti interneto programą ginklų taške, jie automatiškai pasieks Django kelią, kurį Rubyist pasieks Rails..

Tam yra gera priežastis. „Django“ yra, kaip rašoma antraštėje, „internetinė perfekcionistų sistema su nustatytais terminais“. Tai yra vadinama „įtrauktų baterijų“ sistema (panašiai kaip „Python“ kalba, į kurią įtrauktos baterijos), kuri suteikia visas įprastas funkcijas.

Įdiegus šias funkcijas, „Django“ smarkiai sutrumpina kūrimo laiką:

  • Patogus ir malonus ORM, kurio perkėlimus sistema sukuria ir automatiškai taiko.
  • Pastoliai, skirti automatiškai generuoti administratoriaus skydą pagal jūsų modelius.
  • Slapukų, sesijų, tarpinės programinės įrangos, šablonų ir kt. Palaikymas.
  • Apsaugos priemonės, tokios kaip XSS prevencija, CRSF prevencija ir kt., Yra taikomos automatiškai.
  • Veikia su praktiškai visomis duomenų bazėmis (lengva rasti adapterius, kur nėra oficialios palaikymo)
  • Pirmos klasės geografinių duomenų ir erdvinių užklausų palaikymas „GeoDjango“

Ir daug, daug daugiau. Pakanka pasakyti, kad „Django“ yra pilnavertė, draugiška interneto sistema.

Ar Django tau?

Tikrai taip.

„Django“ turi didelę prasmę visais naudojimo atvejais, nesvarbu, ar tai greitas prototipų kūrimas, ar planuojant įmonės programą. Vienintelis šiurkštus kraštas, su kuriuo susidursite, yra rėmo struktūra. Kadangi „Django“ pasislenka atgal, kad jums būtų greita ir lengva, todėl kūrėjui taikoma jo struktūra (sąvoka vadinama „konvencijos per konfigūraciją“), kuriai galbūt nesutinkate. Pavyzdžiui, jei norite pakeisti „Django ORM“ kažkuo kitu (tarkime, „SQL Alchemy“), pasiruoškite netikėtumams.

Norite tapti visišku steko kūrėju kartu su „Django“ ir „Python“? – Patikrink tai fantastiškas internetinis kursas.

Kolba

„Django“ užima beveik visas mintis apie „Python“ interneto svetainių kūrimą, Kolba yra stiprus varžovas.

Priešingai nei „Django“, „Flask“ yra „labai mažas rėmas“, kuris reiškia, kad jis sutelkia dėmesį į kelių, būtiniausių dalykų, sutvarkymą, o visa kita palieka jums. Šis „likimas priklauso nuo jūsų“ gali sukelti nusivylimą ar malonumą, atsižvelgiant į tai, kokie yra jūsų tikslai. Tiems, kurie žino, ką daro, ir nori meiliai kurti savo žiniatinklio programas pasirinkdami pasirinktus komponentus, „Flask“ yra dievo padėtis.

Kolba siūlo šias funkcijas:

  • Maršrutai, šablonai, sesijų valdymas ir kitos naudingos funkcijos.
  • Visiškas palaikymas atliekant vienetų testavimą
  • Minimali, prijungiama architektūra
  • Pirmos klasės REST parama
  • Palaikant „Blueprints“, „Flask“ unikalią mažų žiniatinklio programų architektūrą
  • Pasirinkite paketus, susijusius su ORM, perkėlimu ir kt.
  • Lanksti programos struktūra – padėkite failus ten, kur jie jums atrodo prasmingiausi
  • Statinis failų aptarnavimas
  • Atitinka WGSI

Ar Kolba tau?

Kaip jau minėta, „Flask“ yra minimali žiniatinklio sistema, kurioje viskas suskaidyta į atskirus komponentus, kuriuos galite pakeisti. Jei skubate kurti prototipą, praleisite daug laiko priimdami nereikšmingus sprendimus dėl duomenų bazės, aplanko struktūros, maršruto parinkimo ir kt., Kurie gali pasirodyti priešingi. Kolba geriausiai veikia, kai jūs einate į stabilų, rimtą vidutinio ir didelio masto projektą, ypač REST API.

Butelis

Jei manėte, kad „Flask“ požiūris nebuvo pakankamai minimalus ir vis tiek norėtumėte daugiau kontrolės, pasakykite „labas“ Butelis.

Butelis išstumia dar daugiau, kol vienintelė priklausomybė yra „Python“ standartinė biblioteka. Tai reiškia, kad nereikia jo nei diegti, nei įdiegti, nors greičiausiai jums to reikėjo anksčiau. Štai kodėl kai kurie žmonės iš buteliuko išsiskiria:

  • Vieno failo diegimas. Taip, visa jūsų programa yra viename „.py“ faile.
  • Jokių išorinių priklausomybių. Jei turite įdiegtą tinkamą „Python“ versiją, jums gera eiti.
  • Tiekia savo šabloninį variklį, kurį galima pakeisti su „Jinja2“, „Mako“ ar „Cheetah“.
  • Formų, antraščių, slapukų ir failų įkėlimo palaikymas.
  • Integruotas interneto serveris, kurį galima lengvai pakeisti.

Ar butelis tau?

Jei kuriate tikrai mažą programą (tarkime, mažiau nei 500 kodo eilučių), kuriai netaikomi jokie specialūs reikalavimai, butelis gali suteikti jums daug prasmės. Tai yra visiškai nesąmoningas požiūris į internetinių programų kūrimą, tačiau praktiškai pastebėsite, kad jums trukdo labiau, nei padeda „Bottle“. Priežastis ta, kad realusis pasaulis visuomet keičiasi ir prieš tai nežinai. Nauji reikalavimai bus numesti ant galvos. Tuomet viską sudėti į vieną failą taps nemalonu.

Be to, jei manote, kad butelis ir kolba yra beveik panašūs, tu teisi. Pasiūlymai susijungimas dvi datos datuojamos 2012 m., ir net „Flask“ kūrėjas Arminas su tuo sutinka. Tačiau „Bottle“ kūrėjas Marcelas laikosi griežto ideologinio skirtumo dėl vienkartinių dokumentų požiūrio ir reikalauja, kad jie liktų atskiri.

Zope

Zope sunku paaiškinti, bet aš pabandysiu. Taip, tai yra žiniatinklio sistema, kurią galima naudoti kuriant dideles ar mažas programas, tačiau tai dar ne viskas. „Zope“ yra daugiau platforma, kurią sudaro įrankiai (įskaitant internetinius rėmus), sukurtus pagal „Zope“ filosofiją ir prižiūrimus „Zope“ korporacijos.

„Zope“ turi keletą įdomių komponentų ir funkcijų, tinkančių įmonės programų plėtrai:

  • Komponentas, registruojantis ir atradimo architektūra, norint sukonfigūruoti didelę programą.
  • ZODB – (vienintelė) „Python“ objektų duomenų bazė, skirta vietiniams objektams saugoti.
  • Visavertė turinio valdymo sistemų sistema ir standartai
  • Žiniatinklio aplikacijų rinkinių rinkinys – kanoninis vis dar vadinamas Zope, nors viršuje buvo pastatytos kelios naujos struktūros (pvz., Grokas).
  • Griežti programinės įrangos kūrimo, išleidimo ir priežiūros standartai.

Ar Zope tau??

Jei esate pagal labai struktūruotą aplinką kurdami tikrai dideles programas, „Zope“ yra gera. Beje, jūs taip pat įsitrauksite į nemažą dalį klausimų. Kol Zope toliau vystosi, bendruomenė yra tikrai maža tiek, kad daugelis „Python“ kūrėjų apie tai net negirdėjo. Neįmanoma rasti vadovėlių ir išsamios dokumentacijos, todėl būkite pasirengę daug ką kasti (nors bendruomenė tikrai naudinga!). Be to, jūsų pažįstami „Python“ kūrėjai gali nenorėti išmokti Zope ir „praskiesti“ savo įgūdžių rinkinį.

„TurboGears“

„TurboGears“ yra labai lanksti sistema, kurios architektūra yra tikrai sudėtinga. Tai yra sistema, atitinkanti jūsų poreikius, ir jūs galite ją naudoti kurdami vieno failo programą ar daugiabučio behemotą..

„TurboGears“ turi keletą elegantiškų funkcijų, kurių kai kurių nėra populiariuose rėmuose (pvz., „Django“) arba jas sunku sukurti:

  • Pirmos klasės palaikymas kelioms duomenų bazėms
  • Kelių duomenų bazių operacijos
  • Labai modulinis – pradėkite nuo vieno failo ir išmaukite tiek, kiek jums reikia
  • Galingas ORM (SQLAlchemy, kuris yra labiau subrendęs ir pajėgus nei Django ORM)
  • Prijungiama architektūra, pagrįsta WSGI specifikacija
  • Integruotas duomenų bazių sutvirtinimo palaikymas
  • Funkcija pagrįsta sąsaja, o ne gilios, griežtos į objektą orientuotos hierarchijos.

Ar „TurboGears“ jums?

Jei norite laimingai vystytis ir norite išbandytos, brandžios ir tvirtos struktūros, atitolinančios nuo „nuostabaus, kito gen“ garso ir vaizdo įrašų keliamo triukšmo, „TurboGears“ puikiai tinka. Jis yra labai gerbiamas bendruomenėje ir turi išsamius, išsamius dokumentus. Žinoma, „TurboGears“ nėra vertinamas, o tai reiškia, kad pradinis sąrankos ir konfigūravimo laikas gali būti daugiau, tačiau tai yra idealus pagrindas įmonės programų plėtrai.

„Web2py“

„Web2py“ Pradėtas kaip pomėgių projektas ir išleistas 2007 m. Jo tikslai yra padaryti interneto svetainių kūrimą lengvą ir prieinamą visiems.

Todėl „Web2py“ visiškai nepriklausomą požiūrį taiko priklausomybe – jis neturi jokių reikalavimų, nieko nereikia diegti ir apima pilną žiniatinklio redaktorių, skirtą plėtrai, duomenų bazių valdymui ir diegimui..

Galite beveik galvoti apie tai kaip „Android Studio“, kuris yra daugiau nei visa aplinka, o ne tik sistema. Keletas gražių funkcijų, kurias turi „Web2py“, yra:

  • Beveik nėra mokymosi kreivės.
  • Minimalus branduolys (tik 12 objektų), kurį netgi galima įsiminti!
  • Švarus „Python“ šablonas
  • Apsauga nuo XSS, CSRF ir kitų atakų
  • Malonus ir nuoseklus API

Ar „Web2py“ jums?

„Web2py“ yra stabilus ir įdomus pagrindas, tačiau sunku jį rekomenduoti palyginti su kitomis galimybėmis, tokiomis kaip „Django“, „Flask“ ir kt. Darbų beveik nėra, o vienetų testavimo istorija nėra puiki. Beje, jums gali patikti kodo API ir visa patirtis, kurią siūlo sistema, ypač jei kuriate REST API.

„CherryPy“

„CherryPy“ yra dar vienas mikro rėmas, kurio tikslas – suteikti pagrindinę rėmo funkciją ir greitai išeiti iš kelio.

Nors jis yra palyginamas su kitais mikrofragmentais, tokiais kaip Flask, „CherryPy“ gali pasigirti tam tikru išskirtinumu:

  • Jame yra įmontuotas kelių sriegių serveris (kažkas, kas lieka „Flask“ norų sąraše)
  • (Vienas) interneto serveris gali talpinti kelias programas!
  • Pateikite savo programą kaip WSGI programą (sąsajai su kitomis WSGI programomis) arba paprastą HTTP serverį (kuris veikia geriau).
  • Pirmos klasės palaikymas profiliavimui ir vienetų testavimui
  • Veikia „PyPy“ (tikriems narkomanams), „Jython“ ir net „Android“

„CherryPy“ visa tai daro, o tada įprasta, ko tikėjotės iš žiniatinklio sistemos.

Ar CherryPy jums?

Jei dažniausiai kuriate RESTful paslaugas, „CherryPy“ yra daug rimtesnis varžovas nei „Flask“. Tai dešimtmečio senumo sistema, gražiai subrendusi ir tinkama tiek mažoms, tiek didelėms programoms.

Sanic

Pakilęs mazgas ir jo asinchroninis programavimo modelis paliko daugelį bendruomenių nuošalyje, įskaitant ir Python’ą. Reaguodama į radarą pasirodė pliūpsnis asinchroninių žiniatinklio rėmų, Sanic būdamas vienas iš jų.

„Sanic“ labai įkvėpė „Flask“ tiek, kiek ji pasiskolino maršruto dekoratorius, „Blueprints“ ir kitus pagrindinius daiktus užimančią kabliuko liniją ir skęstantįjį. Ir jiems nėra gėda tai pripažinti. Tai, ką „Sanic“ atneša prie stalo, jei esate „Flask“ gerbėjas, tikrai neužblokuoja I / O, kad atitiktų „Node“ programos našumo lygius. Kitaip tariant, „Sanic“ yra Flask su async / laukia palaikymo!

Palyginti su „CherryPy“, „Sanic“ pasižymi neįtikėtinu našumu (tik pagalvok, kaip tai paveiktų „Flask“!). Peržiūrėkite šiuos rezultatus, kuriuos išbandė „DataWeave“:

Kaip matote, kai tuo pačiu metu skaičiai pradeda viršyti 50 per sekundę, „CherryPy“ praktiškai užspringsta ir sukuria aukštą gedimų procentą..

Ar Sanic tau?

Nors „Sanic“ charakteristikos išstumia iš vandens visa kita, jis gali būti ne pats geriausias pasirinkimas kitam projektui. Pagrindinė priežastis yra asinchroninių bibliotekų trūkumas. Didžioji dalis egzistuojančių „Python“ įrankių ir bibliotekų buvo parašyta CPython versijai su viena gija, neįsivaizduojant aukšto suderinamumo ar asinchroninių operacijų. Jei, pavyzdžiui, jūsų mėgstamiausias ORM nepalaiko asinchroninių operacijų, visa „Sanic“ naudojimo esmė pralaimima.

Dėl šių brandos ir prieinamumo priežasčių daugiau nenagrinėsime „Python“ async schemų.

Masonitas

Aš prieš kurį laiką susidūriau su šia sistema ir maniau, kad tai yra žingsnis teisinga linkme. Nuo tada buvo išleista 2.0 versija, ir aš jaučiu, kad pagaliau atėjo laikas duoti Masonitas šiek tiek meilės.

Paprasčiau tariant, „Masonite“ yra „Python“ Laravel versija (garsioji PHP sistema, tuo atveju, jei nežinojai). Kodėl tai svarbu? Tai svarbu, nes „Laravel“ buvo pastatytas remiantis „Ruby on Rails“ principais, ir šie du rėmai kartu su „Ruby on Dev“ suteikia galimybę daryti „Rails Way“..

„Laravel“ (ir tam tikru mastu – „Rails“) kūrėjai jausis kaip namuose ir bus pasirengę ir paleisti tiesiogine prasme. Kai išbandžiau „Masonite“ (ir aš pateikiau dvi ar dvi problemas, įskaitant klaidą!), Aš galėjau sukurti REST API su visiškai nuliniu mąstymu, nes mano „Laravel“ raumenų atmintis padarė viską.

„Masonite“, kaip komplekte esančių baterijų komplektas, pateikia prie stalo keletą įdomių dalykų:

  • Aktyvaus įrašo stiliaus ORM
  • Duomenų bazių perkėlimai (kuriuos, skirtingai nei „Django“, turi sukurti kūrėjas)
  • Galingas IoC konteineris priklausomybės injekcijai
  • Nuosavas CLI (vadinamas „amatu“) pastolių ir eksploatavimo užduotims atlikti
  • Pirmos klasės palaikymas vienetų testavimui

Didžiausias „masonito“ konkurentas yra „Django“, nes bendruomenė daro viską, kad rinkai būtų parduoti kuo lengvesnis, žavesnis ir kitas didelis dalykas. Laikas parodys, ar ji pranoks Django (jei jūsų paklausite, ar ji turi neblogą kadrą), tačiau diskusiją, kurioje palyginsite abu, žr. čia ir čia.

Ar tau masonitas?

Masonitas vis dar yra kūdikis, palyginti su Django, todėl jo negalima rekomenduoti Django. Beje, jei jūs einate į „Rails“ (ar „Laravel“) reikalus, jūs vertintumėte tai, ką gali pasiūlyti Masonite. Tai idealiai tinka greitai kurti prototipus, kuriems reikalinga viskas iš anksto sukonfigūruota ir lengvai perjungiama.

Išvada

Netrūksta ir didelių, ir mažų „Python“ internetinių rėmų. Nors mažam projektui galite pasiimti daug ką, įmonės programai keliami reikalavimai, kurių gali patenkinti ne daugelis šių schemų. Jei paklaustumėte manęs, apie įmonės plėtrą į galvą ateina „Django“ (tam tikra prasme), „Zope“ ir „TurboGears“. Ir net tarp jų aš linkęs į „TurboGears“.

Beje, bet kuris architektas, vertas savo druskos, gali pasiimti mikrorėmelį ir išplėsti jų architektūrą. Ir tai nutinka praktiškai, tai paaiškina „Flask“ ir panašių idėjų sėkmę.

Jei esate naujokas, tada šis internetinis kursas būtų naudinga išmokti Python’ą.

ŽENKLAI:

  • Python

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map