CherryPy

Из Википедије, слободне енциклопедије
Иди на навигацију Иди на претрагу
CherryPy
Програмер(и)CherryPy тим
Стабилно издање
3.8.0 / 26.06.2015.
Спремиште Уреди на Википодацима
Написан уПајтон
Оперативни системCross-platform
ТипФрејмворк Веб Апликације
ЛиценцаBSD License
Веб-сајтwww.cherrypy.org

CherryPy је веб апликациони фрејмворк објектно-орјентисаног програмирања који се користи програмским језиком Пајтон. Дизајниран је за рапидно брзо програмирање веб апликација обмотавајући се HTTP протоколом али притом да остаје у ниском нивоу и да не нуди ништа више него што је дефинисано у RFC 7231.

CherryPy може бити сервер сам по себи или га неко може покренути преко било ког WSGI компатибилног окружења. Не ради са стварима попут шаблонирања за излазно приказивање или приступ бек-енду. Фрејмворк је могуће проширити са филтерима, који су позвани у одређеним тачкама код захтева/одговора у току процеса.

Пајтонски интерфејс[уреди]

Један од циљева пројектанта, Реми Делон, је био да се CherryPy направи што више пајтонски што је могуће. Ово дозвољава програмерима да користе фрејмворк као било који регуларни Пајтон модул и да забораве (из техничке перспективе) да је апликација за веб.

На пример, чест Hello World програм са CherryPy 3 би изгледао:

import cherrypy

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

cherrypy.quickstart(HelloWorld())

Могућности[уреди]

CherryPy имплементује:

  • HTTP/1.1-компатибилност, WSGI нитно-базирани веб сервер.[1] Типично, CherryPy сам по себи захтева само 1-2 милисекунде по страници.[2][3]
  • Подршка за било који други WSGI-омогућени веб сервер или адаптер, укључујући Apache, IIS, lighttpd, mod_python, FastCGI, SCGI, и mod_wsgi.
  • Нативни mod_python адаптер.
  • Вишеструке HTTP сервере (нпр. могућност слушања на више портова).[4]
  • Систем прикључка [5] CherryPy прикључци се каче на дешавања у оквиру процеса сервера — у покретање сервера, гашење, излазак, итд. — да би се покренуо код који је потребан приликом покретања и гашења сервера.
  • Уграђене алатке за веб кеш, Кодирање знакова, сесије, ауторизацију, статични садржај, и друге. CherryPy алатке се каче на дешавања у оквиру процеса захтева. Када год CherryPy сервер добије захтев, постоји специфични сет корака кроз који пролази да би поднео тај захтев. Подносиоци странице су само један корак у процесу. Алатке такође доприносе синтаксу и конфигурациони АПИ за њихово укључивање и искључивање за специфични сет подносиоца.
  • Конфигурациони систем за програмере и издаваче.[6][7][8] CherryPy размештања су променљива на сајту, на апликационом и контролорном нивоу, кроз библиотеке Пајтона, конфигурационих фајлова и објеката отвореног фајла.
  • Потпун скуп тестова за главну функционалност и повезан фрејмворк који може бити коришћен за тестирање CherryPy апликација.[9]
  • Уграђен профајлинг од верзије v2.1,[10]покривање [11] и подршка за тестирање.

CherryPy не форсира да се користи специфични објектно-релациони мапер (ОРМ), језик шаблонирања или библиотеку JavaScript-e.

Могу бити коришћени са CherryPy[уреди]

  • Routes [12] — Пајтон ре-имплементација Ruby on Rails системских путева за мапирање веб адреса на контролоре/акције и генерисање веб адреса.

Објектно-релациони мапери[уреди]

  • SQLAlchemy —  бек-енд база података и ОРМ за Пајтон апликације. TurboGears 2.x се користи CherryPy као сервером и SQLAlchemy као његов главни ОРМ.[13]
  • SQLObject — популарни ОРМ за допринос објектног интерфејса у базу података. Подржава бројне честе бек-енд базе података: укључене у дистрибуцију су: MySQL, PostgreSQL, SQLite, Sybase SQL Server, MaxDB, Microsoft SQL Server и Firebird. TurboGears 1.x се користи CherryPy као сервером и SQLObject као ОРМ.[14]
  • Storm — ОРМ од Canonical Ltd. (ствараоци Ubuntu-а)
  • Peewee — једноставан и мали ОРМ. Има неколико (али важних) концепата, чинећи га лаким за учење и интуитивним за коришћење
  • Dejavu[15] — јавни домен, нитно обезбеђен ОРМ за Пајтон апликације
  • MongoEngine —ОДМ за повезивање на MongoDB.

Језици шаблонирања[уреди]

  • Mako[16] — библиотека шаблона написана у Пајтону, могућа за коришћење са једноставном CherryPy алатком.[17]
  • Cheetah — шаблон отвореног кода и алатка генератора кода, написаног у Пајтону.
  • CherryTemplate — језик шаблонирања за CherryPy.
  • Genshi [18][19] — моћан језик шаблонирања у XML-у.
  • Jinja — језик шаблонирања у генералне сврхе. CherryPy има алатку за коришћење Jinja шаблона.[20]
  • Kid — једноставан језик шаблонирања за XML базиране речнике написане у Пајтону. TurboGears 1.x се користи CherryPy као сервером, а Kid као предњим крајем.[21]

CherryPy вики помаже [22] у избору језика шаблонирања.

JavaScript библиотеке[уреди]

  • Sarissa[23] — крос-претраживач за Ajax
  • jQuery — лагана библиотека која даје акценат на интеракцију између  JavaScript-е и HTML-а
  • Pyjamas — Пајтон до JavaScript компајлер и сет веб додатака

Произбоди који користе CherryPy[уреди]

Референце[уреди]

  1. ^ [1]
  2. ^ „CherryPy v3 WSGI server benchmark results”. Архивирано из оригинала на датум 03. 03. 2016. Приступљено 14. 11. 2015. 
  3. ^ „How fast is CherryPy?”. Архивирано из оригинала на датум 10. 02. 2010. Приступљено 14. 11. 2015. 
  4. ^ „How to set up multiple HTTP servers with CherryPy”. Архивирано из оригинала на датум 03. 03. 2016. Приступљено 14. 11. 2015. 
  5. ^ „Custom engine plugins with CherryPy”. Архивирано из оригинала на датум 03. 05. 2009. Приступљено 14. 11. 2015. 
  6. ^ „Configuration system of CherryPy”. Архивирано из оригинала на датум 26. 06. 2009. Приступљено 14. 11. 2015. 
  7. ^ „Configuration API of CherryPy”. Архивирано из оригинала на датум 01. 07. 2009. Приступљено 14. 11. 2015. 
  8. ^ Short summary of configuration options
  9. ^ „How to test CherryPy itself”. Архивирано из оригинала на датум 27. 09. 2009. Приступљено 14. 11. 2015. 
  10. ^ „Profiler module of CherryPy”. Архивирано из оригинала на датум 09. 02. 2010. Приступљено 14. 11. 2015. 
  11. ^ „How to collect and the analyse coverage data of application code with CherryPy”. Архивирано из оригинала на датум 17. 11. 2015. Приступљено 14. 11. 2015. 
  12. ^ „A simple dispatcher tool for CherryPy that uses Routes”. Архивирано из оригинала на датум 14. 01. 2016. Приступљено 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”. Архивирано из оригинала на датум 22. 09. 2009. Приступљено 14. 11. 2015. 
  15. ^ „Dejavu”. Архивирано из оригинала на датум 17. 05. 2009. Приступљено 14. 11. 2015. 
  16. ^ Mako
  17. ^ „A simple CherryPy tool for Mako templating”. Архивирано из оригинала на датум 03. 03. 2016. Приступљено 14. 11. 2015. 
  18. ^ „CherryPy – Genshi”. Приступљено 26. 9. 2009. 
  19. ^ „Genshi - CherryPy Tools - Trac”. Архивирано из оригинала на датум 04. 07. 2012. Приступљено 26. 9. 2009. 
  20. ^ „A basic CherryPy Tool for using Jinja templates”. Архивирано из оригинала на датум 05. 09. 2015. Приступљено 14. 11. 2015. 
  21. ^ „TurboGears 1.x uses CherryPy as server and Kid as frontend”. Архивирано из оригинала на датум 22. 09. 2009. Приступљено 14. 11. 2015. 
  22. ^ „CherryPy wiki about choosing a templating language”. Архивирано из оригинала на датум 18. 05. 2005. Приступљено 14. 11. 2015. 
  23. ^ http://sourceforge.net/projects/sarissa/files/
  24. ^ CherryPy - Splunk Knowledgebase

Спољашње везе[уреди]