CherryPy + Apache + WSGI и веб-программа на язык Python

By vedavrat

Что такое WSGI я так и не узнал. :-) И т.н. “веб-сервер Апач” для меня тоже “тёмный лес”… Тем не менее, мне только что удалось запустить моё первое веб-приложение на Питоне (Python) и ЧерриПай (CherryPy).

Если говорить кратко, дело было так. Как и обещал (http://vedavrata.livejournal.com/684686.html) мы пишем программу — мобильное приложение для Андроида и айФона — по ведической нумерологии и астрологии. Я сделал её прототип на Питоне, и программа работала у меня локально на компьютере. Потом я захотел показать её всем, для этого нужно было сделать из неё веб-приложение. Для этого я выбрал CherryPy (кстати, из разных сред для разработки веб-приложений [web frameworks] я выбрал именно CherryPy воспользовавшись ведической нумерологией, о чём не жалею, :-) но об этом ниже). Я попросил хост-мастера “прикрутить” CherryPy к хостингу (в веб-серверу Апач), для чего пришлось задействовать какой-то WSGI… После того, как хостинге заработал “Hello world” на CherryPy, я долго не мог понять, как же мне связть свою программу на Питоне с непонятным WSGI и с CherryPy. Перечитав много интернета, я нашёл описание, как это сделать: http://www.devisland.net/help/cherrypy.shtml . И — ура! — программа заработала. :-)

Воспользоваться её можно по адресу http://num.ved.bz
Это – альфа, то есть самая первая сырая версия. Если есть пожелания – пишите.

Почему я выбрал CherryPy из десяти возможных web frameworks на Питоне:
# 2 CherryPy — среда для разработки веб-приложений
# 3 Django — среда для разработки веб-приложений
# ? web2py — среда для разработки веб-приложений
# 6 Google App Engine — Google-хостинг, использует Python для серверных приложений
# 1 GAE framework – Django-подобный фреймворк, совместимый с Google App Engine
# 1 Plone — система управления содержимым вебсайтов (CMS) на платформе Zope
# 9 Pylons — среда для разработки веб-приложений
# 4 web.py — среда для разработки веб-приложений
# 9 Webware — среда для разработки веб-приложений
# 9 Zope — сервер для построения CMS и веб-приложений, платформа для их разработки
Т.н. “контрольная сумма” (нумерологическое число) CherryPy равно 2, а цифра 2 для меня благоприятна.
У остальных нумерологические числа – это 3, 6, 1, 9 и 4, которые мне не подходят.
Просто? :-) Но эффективно.

По этому же принципу я выбрал свой новый киевстаровский номер. :-)

Для специалистов (программистов): Если Вы пишете на Python и хотите сделать веб-приложение с помощью ЧерриПай (причём Апач его будет вызывать с помощью некоего WSGI), то подсказка такова:

import sys
sys.stdout = sys.stderr
import atexit
import threading
import cherrypy
cherrypy.config.update({'environment': 'embedded'})
if cherrypy.engine.state == 0:
    cherrypy.engine.start(blocking=False)
    atexit.register(cherrypy.engine.stop)
class Root(object):
    def index(self):
        return 'Hello World -- /
    index.exposed = True
    def calc(self):
        return 'Hello World -- /calc
    index.exposed = True
application = cherrypy.Application(Root(), None) 

Спасибо www.devisland.net/help/cherrypy.shtml !

Print Friendly, PDF & Email