CherryPy
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.
Programer(i) | CherryPy tim |
---|---|
Stabilno izdanje | 3.8.0
/ 26.06.2015. |
Repozitorijum | |
Napisan u | Pajton |
Operativni sistem | Cross-platform |
Tip | Frejmvork Veb Aplikacije |
Licenca | BSD License |
Veb-sajt | www |
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
- SQLAlchemy — bek-end baza podataka i ORM za Pajton aplikacije. TurboGears 2.x se koristi CherryPy kao serverom i SQLAlchemy kao njegov glavni ORM.[13]
- SQLObject — popularni ORM za doprinos objektnog interfejsa u bazu podataka. Podržava brojne česte bek-end baze podataka: uključene u distribuciju su: MySQL, PostgreSQL, SQLite, Sybase SQL Server, MaxDB, Microsoft SQL Server i Firebird. TurboGears 1.x se koristi CherryPy kao serverom i SQLObject kao ORM.[14]
- Storm — ORM od Canonical Ltd. (stvaraoci Ubuntu-a)
- Peewee — jednostavan i mali ORM. Ima nekoliko (ali važnih) koncepata, čineći ga lakim za učenje i intuitivnim za korišćenje
- Dejavu[15] — javni domen, nitno obezbeđen ORM za Pajton aplikacije
- MongoEngine —ODM za povezivanje na MongoDB.
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
- TurboGears — CherryPy 2.x je glavna komponenta TurboGears 1.x.
- Splunk Enterprise - CherryPy 3.1.2[24]
Reference uredi
- ^ „Arhivirana kopija”. Arhivirano iz originala 14. 05. 2021. g. Pristupljeno 14. 11. 2015.
- ^ „CherryPy v3 WSGI server benchmark results”. Arhivirano iz originala 03. 03. 2016. g. Pristupljeno 14. 11. 2015.
- ^ „How fast is CherryPy?”. Arhivirano iz originala 10. 02. 2010. g. Pristupljeno 14. 11. 2015.
- ^ „How to set up multiple HTTP servers with CherryPy”. Arhivirano iz originala 03. 03. 2016. g. Pristupljeno 14. 11. 2015.
- ^ „Custom engine plugins with CherryPy”. Arhivirano iz originala 03. 05. 2009. g. Pristupljeno 14. 11. 2015.
- ^ „Configuration system of CherryPy”. Arhivirano iz originala 26. 06. 2009. g. Pristupljeno 14. 11. 2015.
- ^ „Configuration API of CherryPy”. Arhivirano iz originala 01. 07. 2009. g. Pristupljeno 14. 11. 2015.
- ^ Short summary of configuration options
- ^ „How to test CherryPy itself”. Arhivirano iz originala 27. 09. 2009. g. Pristupljeno 14. 11. 2015.
- ^ „Profiler module of CherryPy”. Arhivirano iz originala 09. 02. 2010. g. Pristupljeno 14. 11. 2015.
- ^ „How to collect and the analyse coverage data of application code with CherryPy”. Arhivirano iz originala 17. 11. 2015. g. Pristupljeno 14. 11. 2015.
- ^ „A simple dispatcher tool for CherryPy that uses Routes”. Arhivirano iz originala 14. 01. 2016. g. Pristupljeno 14. 11. 2015.
- ^ TurboGears 2.x uses CherryPy as server and SQLAlchemy as its default ORM
- ^ „TurboGears 1.x uses CherryPy as server and SQLObject as ORM”. Arhivirano iz originala 22. 09. 2009. g. Pristupljeno 14. 11. 2015.
- ^ „Dejavu”. Arhivirano iz originala 17. 05. 2009. g. Pristupljeno 14. 11. 2015.
- ^ Mako
- ^ „A simple CherryPy tool for Mako templating”. Arhivirano iz originala 03. 03. 2016. g. Pristupljeno 14. 11. 2015.
- ^ „CherryPy – Genshi”. Pristupljeno 26. 9. 2009.
- ^ „Genshi - CherryPy Tools - Trac”. Arhivirano iz originala 04. 07. 2012. g. Pristupljeno 26. 9. 2009.
- ^ „A basic CherryPy Tool for using Jinja templates”. Arhivirano iz originala 05. 09. 2015. g. Pristupljeno 14. 11. 2015.
- ^ „TurboGears 1.x uses CherryPy as server and Kid as frontend”. Arhivirano iz originala 22. 09. 2009. g. Pristupljeno 14. 11. 2015.
- ^ „CherryPy wiki about choosing a templating language”. Arhivirano iz originala 18. 05. 2005. g. Pristupljeno 14. 11. 2015.
- ^ http://sourceforge.net/projects/sarissa/files/
- ^ „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
- Zvanični veb-sajt
- mailing list
- Documentation Arhivirano na sajtu Wayback Machine (17. novembar 2015)
- Feeds about CherryPy
- CherryPy on Freshmeat
- CherryPy on Arhivirano na sajtu Wayback Machine (3. avgust 2013) Ohloh
- Websites running atop CherryPy Arhivirano na sajtu Wayback Machine (17. novembar 2015)
- People who use CherryPy Arhivirano na sajtu Wayback Machine (12. avgust 2011)
- Products based on or inspired by CherryPy Arhivirano na sajtu Wayback Machine (17. novembar 2015)