Web v Pythonu s Poor Http nebo Poor Publisher

Webové stránky psané v jazyce Python se stále moc nevidí, i přes to, že v mnohých případech je jeho použití daleko vhodnější než např. PHP. Důvodů proč tomu tak je, může být mnoho. Vedle „nevzdělanosti” webových programátorů, dostupnosti služby na straně webhostingových firem může být jedním z faktorů samotné rozběhnutí primitivní hello world aplikace a universálnost provozu takové aplikace.
„Pythonovka [Pajtnovka] - Webová stránka, resp. aplikace napsaná v jazyce Python.”

Python - jaké máme možnosti

Provozovat webovou stránku psanou v Pythonu je, i když se to nezdá, vcelku jednoduché. Možností použití je hned několik. Můžeme psát cgi skripty, můžeme použít mod_python a to hned několika způsoby, nebo můžeme provozovat vlastní webový server napsaný přímo v Pythonu. Pro různé aplikace se hodí různé přístupy. Já se však v tomto článku zaměřím na univerzální přístup, který umožňuje provozovat aplikaci jak samostatně, jako webový server, tak v serveru Apache přes mod_python. Podrobnější rozbor možností můžete nalézt třeba v jednom z mých starších článků.

Poor Http nebo Poor Publisher

Při hlubším zkoumání jak v Pythonu napsat webovou aplikaci, která by byla dostupná přes Lighttpd sem nakonec napsal vlastní webový server Poor Http. I když byl tento server původně navržen jako pattern webové aplikace, umí toho nakonec víc a stal se samostatnou fungující komponentou.

Co tedy umí ? Je konfigurovatelný, umí běžet v režimu single (jednoprocesový, jednovlákonový), forking (multiprocesový), threading(multivláknový). Umí logovat a to jak požadavky (access log), tak chyby (error log). Vedle zavolání příslušné funkce, která obsluhuje konkrétní požadavek umí vrátit i soubor uložený na serveru, například obrázek. Dále umí generovat základní chybové stránky, jako 403, 404, 405, 500 a 501. Jeho API je z důvodů kompatibility co nejvíce podobné API mod_pythonu resp. Apache. Je konfigurovatelný prostřednictvím ini souboru a umí běžet v ladícím i optimalizovaném režimu.

Ke spojení webové aplikace a serveru používá soubor dispatch_table.py, který obsahuje vazbu http požadavků a obslužných funkcí. Dále je v něm možné definovat obsluhu chybových stavů a inicializaci aplikace. Tento soubor stejným způsobem využívá i Poor Publisher, jakožto rozhraní mezi mod_pythonem a webovou aplikací. Obě komponenty, jak Poor Http tak Poor Publisher nepatrně vylepšují FieldStorage, obsahují vlastní ladící obsluhu chyby 500 a definují třídu PoorSession, což je tzv. samonosná cookie.

import http
import application

handlers = {
    ‚/‘                 : (http.METHOD_GET, application.index),
    ‚/post‘             : (http.METHOD_POST, application.post),
    ‚/history‘          : (http.METHOD_GET, application.history),
}
Dispatch table aplikace AJAXChat.

SetHandler mod_python
PythonDebug On

# predpoklad je ze aplikace je ulozena v /srv/ajaxchat
PythonHandler /srv/ajaxchat/poorpublisher.py
PythonPath "['/srv/ajaxchat'] + sys.path"
PythonAutoReload On

<Files ~ "\.(css|js)$">
   SetHandler default-handler
</Files>
Soubor .htaccess z aplikace AJAXChat.

Definice obslužných handlerů

Jak sem již napsal výše, API se snaží co nejvíce podobat mod_pythonu, proto obslužný handler dostane v parametru objekt Request. Ten se samozřejmě liší podle toho, zda je aplikace puštěná přes Poor Http, nebo Poor Publisher. Základní práce s objektem a dostupnost metod je ale víceméně shodná. Metoda může končit buď vrácením stavu http.OK či http.DONE, nebo vyvoláním výjimky http.SERVER_RETURN. Obě komponenty odchytí i jiné výjimky a v takovém případě vygenerují chybovou stránku 500, na která podle nastavení ladění bude vygenerován i traceback.

import http

def index(req):
    req.content_type = „text/html”
    req.sendfile(‚index.html‘)
    return http.OK
#enddef
Ukázka metody index.

Homepage, licence, dokumentace

Domovská stránka projektu samotného zatím vlastně pořádně neexistuje, aktuálně je k dispozici jen text na mém blogu. Kód obou komponent je uložen v SVN repositáři na serveru SourceForge.Net, kde jsou k dispozici i příslušná fóra. Dokumentací je momentálně pouze zdrojový kód a články na mém blogu. Toto plánuji změnit a hodlám vygenerovat jak dokumentaci, tak nějakou srovnávací tabulku v rozdílech při použití PoorHttp a PoorPublisheru (mod_python, resp. Apache). Kód aplikace je samozřejmě otevřený a dále publikovaný pod licencí BSD, což zaručuje jeho další použití v jakémkoli projektu.

Na závěr zbývá ještě dodat, že obě komponenty sem podrobil zátěžovému testu, a jeho výsledky jsou publikované např. zde. Na ostrých serverech používám momentálně komponentu PoorPublisher a PoorHttp používám na netbooku pro svojí nenáročnost oproti serveru Apache.

V dalším článku o Pythonu se společně podíváme na backend aplikace AJAXChat, jejíž frontendovou část sem již popsal v článku ze seriálu o javascriptu.
Autor:

Diskuze

vardenafil cialis compair unlivy
Acheter De Viagra https://agenericcialise.com/ - Cialis Best Canadian Pharmacy To Buy From <a href=https://agenericcialise.com/#>Generic Cialis</a> Baclofene Naturel
Залить монолитный фундамент цена
<b><a href=https://novostroyka63.ru/>Монолитная плита</a></b>

Создание дома вашей мечты - это оригинальная возможность, спланировать и претворить в жизнь нечто воистину уникальное во всех отношениях. Возведение фундамента - это в целом первоначальная модель ремонта, в процессе которой домик строится. При расчете замена фундамента под старым деревянным домом цена предусматривается весьма много факторов. Средняясумма возведения домов фундамента составляет приблизительно от 10$ за кв.метр . Погреб сможет умножить итоговую стоимость каждого объекта недвижимости, предоставляя необходимое помещение ради организации хранения и порой рабочее пространство. Наша профессиональная команда по конструированию и возведенью фундамент под памятник на кладбище цена может помочь выстроить жилище, о котором вы всегда мечтали. От начала до конца наша специализированная компания в Череповец позаботимся о всех без исключения процессах, чтобы заказчику не довелось тревожиться о деталях. Специализированная международная компания в Киселевск несет юридическую ответственность за проект, а не вы, именно поэтому организация в Борисоглебск имеют интерес в том, затем чтобы довести до конца строительство коттеджа быстрее и эффективнее. Узнайте о сваи винтовые для фундамента цены в вытегре у спспециалистовециалистов корпорации.
Easy cheap bathroom renovations
<b><a href=https://grandeurhillsgroup.com/>construction planning manhattan</a></b>

Repair work residential premises turnkey - much better Solving problems through wizards.In order place an order for repair work dwellings in Diamond District, leave a request on site or by phone. To create hospitality interior decoration expertly as well as properly, it is vital to utilize effective and also extremely audio products that comply with all standards and technological criteria. However the primary distinction is not also in the components, but in how and just how correctly they are actually made use of. And also this is actually the work of the experts. Expert capabilities areactually an extremely essential situation. . Likewise in our firm, you can purchase personalized bathroom vanities, retail interior design on the most effective problems. With us, interior basements, in addition to Premium renovation Bay Terrace, will end up being straightforward, high quality and also quickly. Our representative will call you back, for clarification few details and assign Times of Day arrival to you professionals and designer.
Patio furniture sale Los Angeles
<b><a href=https://labedroom.com/>Twin bed frame</a></b>
Think refresh your? Read carefully the news of goods home from our compilation, in which are as products with colorful floral patterns and flowers and goods with gorgeous texture finish metallic. Bench for the garden is obligatory attribute any premises. In our online store today you can buy reliable furniture for any house. International company will deliver in BEVERLY HILLS to you absolutely all furniture at any time days.Price lists, that provides online shop office furniture GRIFFIT PARK surprise all visitor.As a rule low price causes separate questions in a relationship high quality products. The catalog which filled with all kinds of items furniture composes only first-class products.
Опрессовщики кабеля
<b><a href=https://3aplus63.ru/product-category/kabelerezy-ruchnye/>кабелерезы ручные</a></b>

Созданная нами предприятие Новочеркасск - сегодня это ведущий поставщик
промышленного оборудования.
Можно купить в Каменск-Уральскийнемало решений для такелажного и подъемного, промышленного и складского, а также весового и гидравлического промышленного оборудования, в том числе тали ручные рычажные,тали ручные червячные передвижные взрывобезопасные,домкраты гидравлические телескопические,канаты для лебедок mtm,балки концевые подвесные,тележки гидравлические с электропередвижением,тележки для балок подвесных концевых холостые,весы крановые электронные.
Мы являемся производителем непростых решений для индустриального парка оборудования.
Мы высококлассная организация по выпуску промышленного оснащения с более чем 6-летним навыком работы.
Интернет магазин грузоподъемного парка оборудования выходит за пределы интернет-реализации и товаров по дисконтной цене, наша фирма может оказать консультации и дополнительно предоставить специализированные услуги на заказ.
На вебсайте мы стремимся предоставить нашим клиентам "универсальный он-лайн магазин" в пользу всех ваших надобностей в промышленном и складском оборудование. Мы стремимся предоставить особо высококонкурентные стоимость товаров в индустрии, оптимизируя при этом превосходнейшее обслуживание покупателей.
Расчет фундамента онлайн калькулятор цена
<b><a href=https://novostroyka63.ru/>Фундамент</a></b>

Создание дома вашей мечты - это оригинальная возможность, спланировать и претворить в жизнь нечто воистину уникальное во всех отношениях. Возведение фундамента - это в целом первоначальная модель ремонта, в процессе которой домик строится. При расчете замена фундамента под старым деревянным домом цена предусматривается весьма много факторов. Средняясумма возведения домов фундамента составляет приблизительно от 10$ за кв.метр . Погреб сможет умножить итоговую стоимость каждого объекта недвижимости, предоставляя необходимое помещение ради организации хранения и порой рабочее пространство. Наша профессиональная команда по конструированию и возведенью фундамент под памятник на кладбище цена может помочь выстроить жилище, о котором вы всегда мечтали. От начала до конца наша специализированная компания в Череповец позаботимся о всех без исключения процессах, чтобы заказчику не довелось тревожиться о деталях. Специализированная международная компания в Киселевск несет юридическую ответственность за проект, а не вы, именно поэтому организация в Борисоглебск имеют интерес в том, затем чтобы довести до конца строительство коттеджа быстрее и эффективнее. Узнайте о сваи винтовые для фундамента цены в вытегре у спспециалистовециалистов корпорации.
Black wood bedroom set Wilshire
<b><a href=https://labedroom.com/>Bedroom furniture</a></b>
Come in outstanding store in Jefferson Park production for office and home use and cafe! presents over 12000 appointment furniture and goods for a country house and apartments or restaurant. Natural rattan , are used for the purposes of production our branded products , possesses strength and wear resistance, wonderful external data. All furniture processed special compounds, due to which their surface does not absorb water, stable to extremes ambient temperature air and exposure of the sun. Vya our furniture excellent retains its functions even in restaurant in open spaces . In the presented online catalog you offered photos furniture for dining room, hall, bedroom, children's room , as well as intended for organization of storage area - dressers and cabinets, cabinets and others . In our store in Fairfax you can buy everything for any your home not expensive . We invite client come to store , holding in Westwood what cares about its shopper.
Международные грузоперевозки во Владивостоке
Трнаспортно-экспедиторская компания Азия Трейдинг организует доставку контейнерных и сборных грузов под ключ из стран Азии с последующим таможенным оформлением во Владивостоке
Váš komentář:

© 2023 Ondřej Tůma McBig. Ondřej Tůma | Based on: Morias | Twitter: mcbig_cz | RSS: články, twitter