CherryPy

CherryPy
Utvecklare CherryPy team
Initial release juni 2002 ; 20 år sedan ( 2002-06 )
Stabil frisättning
Edit this on Wikidata 18.8.0 / 18 juli 2022 ; 7 månader sedan ( 18 juli 2022 )
Förvar CherryPy Repository
Skrivet i Pytonorm
Operativ system Cross-plattform
Typ Webbapplikationsramverk
Licens BSD-licens
Hemsida cherrypy .dev

CherryPy är ett objektorienterat ramverk för webbapplikationer som använder programmeringsspråket Python . Den är designad för snabb utveckling av webbapplikationer genom att omsluta HTTP -protokollet men håller sig på en låg nivå och erbjuder inte mycket mer än vad som definieras i RFC 7231.

CherryPy kan vara en webbserver själv eller så kan man starta den via vilken WSGI- kompatibel miljö som helst. Den hanterar inte uppgifter som mall för utdatarendering eller backend-åtkomst. Ramverket är utbyggbart med filter, som anropas vid definierade punkter i begäran/svarsbehandlingen.

Pythonic gränssnitt

Ett av målen för projektets grundare, Remi Delon, var att göra CherryPy så pytoniskt som möjligt. Detta gör att utvecklaren kan använda ramverket som vilken vanlig Python-modul som helst och glömma (ur teknisk synvinkel) att applikationen är för webben.

Till exempel skulle det gemensamma Hello World- programmet med CherryPy 3 se ut så här:

 

 
     
         
      

 importera  cherrypy  klass  HelloWorld  :  def  index  (  self  ):  returnera  "Hello World!"  index  .  exponerad  =  True  cherrypy  .  snabbstart  (  HelloWorld  ()) 

Funktioner

CherryPy implementerar:

  • En HTTP/1.1- kompatibel, WSGI trådpoolad webbserver. Vanligtvis tar CherryPy själv bara 1–2 ms per sida.
  • Stöd för alla andra WSGI-aktiverade webbservrar eller adapter, inklusive Apache , IIS , lighttpd , mod_python , FastCGI , SCGI och mod_wsgi .
  • En inbyggd mod_python- adapter.
  • Flera HTTP-servrar (t.ex. möjlighet att lyssna på flera portar).
  • Ett instickssystem CherryPy plugins kopplas in i händelser inom serverprocessen — i serverstart, serveravstängning, server avslutas, etc. — för att köra kod som måste köras när servern startar eller stängs av.
  • Inbyggda verktyg för cachelagring , kodning , sessioner , auktorisering , statiskt innehåll och annat. CherryPy- verktyg kopplas in i händelser inom förfrågningsprocessen . Närhelst CherryPy-servern tar emot en begäran, finns det en specifik uppsättning steg som den går igenom för att hantera den begäran. Sidhanterare är bara ett steg i processen. Verktyg tillhandahåller också ett syntax- och konfigurations-API för att slå på och av dem för en specifik uppsättning hanterare.
  • Ett konfigurationssystem för utvecklare och deployers. CherryPy-distributioner kan konfigureras på plats, på applikations- och kontrollnivå, genom Python-ordböcker, konfigurationsfiler och öppna filobjekt.
  • En komplett testsvit för kärnfunktionalitet och tillhörande ramverk som kan användas för att testa CherryPy-applikationer.
  • Inbyggd profilering sedan v2.1, täckning och teststöd.

CherryPy tvingar dig inte att använda en specifik objektrelationell mappare (ORM), mallspråk eller JavaScript-bibliotek .

Kan användas med CherryPy

  • Rutter — en Python-omimplementering av Ruby on Rails ruttsystem för att mappa webbadresser till kontroller/åtgärder och generera webbadresser.

Objektrelationella kartläggare

Mallar för språk

  • Mako — ett mallbibliotek skrivet i Python, användbart med ett enkelt CherryPy-verktyg.
  • Cheetah — en mallmotor med öppen källkod och verktyg för kodgenerering, skriven i Python.
  • CherryTemplate — ett mallspråk för CherryPy.
  • Genshi — ett kraftfullt XML-mallspråk.
  • Jinja — ett mallspråk för allmänt bruk. CherryPy har ett verktyg för att använda Jinja-mallar.
  • Kid — ett enkelt mallspråk för XML-baserade vokabulärer skrivna i Python. TurboGears 1.x använder CherryPy som server och Kid som frontend.

CherryPy wiki hjälper dig att välja ett mallspråk.

Produkter som använder CherryPy

  • TurboGears — CherryPy 2.x är en huvudkomponent i TurboGears 1.x.
  • Splunk Enterprise - CherryPy 3.1.2

Se även

externa länkar