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. ^ „Архивирана копија”. Архивирано из оригинала 14. 05. 2021. г. Приступљено 14. 11. 2015. 
  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[[Категорија:Ботовски наслови]]”. Архивирано из оригинала 17. 11. 2015. г. Приступљено 14. 11. 2015.  Сукоб URL—викивеза (помоћ)

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