CherryPy je veb aplikacioni frejmvork objektno-orijentisanog programiranja koji se koristi programskim jezikom Pajton. Dizajniran je za rapidno brzo programiranje veb aplikacija obmotavajući se HTTP protokolom ali pritom da ostaje u niskom nivou i da ne nudi ništa više nego što je definisano u RFC 7231.

CherryPy
Programer(i)CherryPy tim
Stabilno izdanje
3.8.0 / 26.06.2015.
Repozitorijum Uredi na Vikipodacima
Napisan uPajton
Operativni sistemCross-platform
TipFrejmvork Veb Aplikacije
LicencaBSD License
Veb-sajtwww.cherrypy.org

CherryPy može biti server sam po sebi ili ga neko može pokrenuti preko bilo kog WSGI kompatibilnog okruženja. Ne radi sa stvarima poput šabloniranja za izlazno prikazivanje ili pristup bek-endu. Frejmvork je moguće proširiti sa filterima, koji su pozvani u određenim tačkama kod zahteva/odgovora u toku procesa.

Pajtonski interfejs uredi

Jedan od ciljeva projektanta, Remi Delon, je bio da se CherryPy napravi što više pajtonski što je moguće. Ovo dozvoljava programerima da koriste frejmvork kao bilo koji regularni Pajton modul i da zaborave (iz tehničke perspektive) da je aplikacija za veb.

Na primer, čest Hello World program sa CherryPy 3 bi izgledao:

import cherrypy

class HelloWorld(object):
    def index(self):
        return "Hello World!"
    index.exposed = True

cherrypy.quickstart(HelloWorld())

Mogućnosti uredi

CherryPy implementuje:

  • HTTP/1.1-kompatibilnost, WSGI nitno-bazirani veb server.[1] Tipično, CherryPy sam po sebi zahteva samo 1-2 milisekunde po stranici.[2][3]
  • Podrška za bilo koji drugi WSGI-omogućeni veb server ili adapter, uključujući Apache, IIS, lighttpd, mod_python, FastCGI, SCGI, i mod_wsgi.
  • Nativni mod_python adapter.
  • Višestruke HTTP servere (npr. mogućnost slušanja na više portova).[4]
  • Sistem priključka[5] CherryPy priključci se kače na dešavanja u okviru procesa servera — u pokretanje servera, gašenje, izlazak, itd. — da bi se pokrenuo kod koji je potreban prilikom pokretanja i gašenja servera.
  • Ugrađene alatke za veb keš, Kodiranje znakova, sesije, autorizaciju, statični sadržaj, i druge. CherryPy alatke se kače na dešavanja u okviru procesa zahteva. Kada god CherryPy server dobije zahtev, postoji specifični set koraka kroz koji prolazi da bi podneo taj zahtev. Podnosioci stranice su samo jedan korak u procesu. Alatke takođe doprinose sintaksu i konfiguracioni API za njihovo uključivanje i isključivanje za specifični set podnosioca.
  • Konfiguracioni sistem za programere i izdavače.[6][7][8] CherryPy razmeštanja su promenljiva na sajtu, na aplikacionom i kontrolornom nivou, kroz biblioteke Pajtona, konfiguracionih fajlova i objekata otvorenog fajla.
  • Potpun skup testova za glavnu funkcionalnost i povezan frejmvork koji može biti korišćen za testiranje CherryPy aplikacija.[9]
  • Ugrađen profajling od verzije v2.1,[10]pokrivanje[11] i podrška za testiranje.

CherryPy ne forsira da se koristi specifični objektno-relacioni maper (ORM), jezik šabloniranja ili biblioteku JavaScript-e.

Mogu biti korišćeni sa CherryPy uredi

  • Routes[12] — Pajton re-implementacija Ruby on Rails sistemskih puteva za mapiranje veb adresa na kontrolore/akcije i generisanje veb adresa.

Objektno-relacioni maperi uredi

Jezici šabloniranja uredi

  • Mako[16] — biblioteka šablona napisana u Pajtonu, moguća za korišćenje sa jednostavnom CherryPy alatkom.[17]
  • Cheetah — šablon otvorenog koda i alatka generatora koda, napisanog u Pajtonu.
  • CherryTemplate — jezik šabloniranja za CherryPy.
  • Genshi[18][19] — moćan jezik šabloniranja u XML-u.
  • Jinja — jezik šabloniranja u generalne svrhe. CherryPy ima alatku za korišćenje Jinja šablona.[20]
  • Kid — jednostavan jezik šabloniranja za XML bazirane rečnike napisane u Pajtonu. TurboGears 1.x se koristi CherryPy kao serverom, a Kid kao prednjim krajem.[21]

CherryPy viki pomaže [22] u izboru jezika šabloniranja.

JavaScript biblioteke uredi

  • Sarissa[23] — kros-pretraživač za Ajax
  • jQuery — lagana biblioteka koja daje akcenat na interakciju između  JavaScript-e i HTML-a
  • Pyjamas — Pajton do JavaScript kompajler i set veb dodataka

Proizbodi koji koriste CherryPy uredi

Reference uredi

  1. ^ „Arhivirana kopija”. Arhivirano iz originala 14. 05. 2021. g. Pristupljeno 14. 11. 2015. 
  2. ^ „CherryPy v3 WSGI server benchmark results”. Arhivirano iz originala 03. 03. 2016. g. Pristupljeno 14. 11. 2015. 
  3. ^ „How fast is CherryPy?”. Arhivirano iz originala 10. 02. 2010. g. Pristupljeno 14. 11. 2015. 
  4. ^ „How to set up multiple HTTP servers with CherryPy”. Arhivirano iz originala 03. 03. 2016. g. Pristupljeno 14. 11. 2015. 
  5. ^ „Custom engine plugins with CherryPy”. Arhivirano iz originala 03. 05. 2009. g. Pristupljeno 14. 11. 2015. 
  6. ^ „Configuration system of CherryPy”. Arhivirano iz originala 26. 06. 2009. g. Pristupljeno 14. 11. 2015. 
  7. ^ „Configuration API of CherryPy”. Arhivirano iz originala 01. 07. 2009. g. Pristupljeno 14. 11. 2015. 
  8. ^ Short summary of configuration options
  9. ^ „How to test CherryPy itself”. Arhivirano iz originala 27. 09. 2009. g. Pristupljeno 14. 11. 2015. 
  10. ^ „Profiler module of CherryPy”. Arhivirano iz originala 09. 02. 2010. g. Pristupljeno 14. 11. 2015. 
  11. ^ „How to collect and the analyse coverage data of application code with CherryPy”. Arhivirano iz originala 17. 11. 2015. g. Pristupljeno 14. 11. 2015. 
  12. ^ „A simple dispatcher tool for CherryPy that uses Routes”. Arhivirano iz originala 14. 01. 2016. g. Pristupljeno 14. 11. 2015. 
  13. ^ TurboGears 2.x uses CherryPy as server and SQLAlchemy as its default ORM
  14. ^ „TurboGears 1.x uses CherryPy as server and SQLObject as ORM”. Arhivirano iz originala 22. 09. 2009. g. Pristupljeno 14. 11. 2015. 
  15. ^ „Dejavu”. Arhivirano iz originala 17. 05. 2009. g. Pristupljeno 14. 11. 2015. 
  16. ^ Mako
  17. ^ „A simple CherryPy tool for Mako templating”. Arhivirano iz originala 03. 03. 2016. g. Pristupljeno 14. 11. 2015. 
  18. ^ „CherryPy – Genshi”. Pristupljeno 26. 9. 2009. 
  19. ^ „Genshi - CherryPy Tools - Trac”. Arhivirano iz originala 04. 07. 2012. g. Pristupljeno 26. 9. 2009. 
  20. ^ „A basic CherryPy Tool for using Jinja templates”. Arhivirano iz originala 05. 09. 2015. g. Pristupljeno 14. 11. 2015. 
  21. ^ „TurboGears 1.x uses CherryPy as server and Kid as frontend”. Arhivirano iz originala 22. 09. 2009. g. Pristupljeno 14. 11. 2015. 
  22. ^ „CherryPy wiki about choosing a templating language”. Arhivirano iz originala 18. 05. 2005. g. Pristupljeno 14. 11. 2015. 
  23. ^ http://sourceforge.net/projects/sarissa/files/
  24. ^ „CherryPy - Splunk Knowledgebase[[Kategorija:Botovski naslovi]]”. Arhivirano iz originala 17. 11. 2015. g. Pristupljeno 14. 11. 2015.  Sukob URL—vikiveza (pomoć)

Spoljašnje veze uredi