Форум сайта python.su
Здравствуйте. Начал разбираться с питоном для веб и не могу понять, если хостер предлагает для питона только CGI, то использование wsgi ситуацию с быстродействием не улучшит? Просто во всех доках и книгах, которые мне попались, рассматривается именно взаимодействие wsgi и CGI? Или фишка как раз в том что с помощью wsgi и на CGI можно добиться нормального быстродействия? Я запутался.
Офлайн
Здравствуйте! Если хостер предлагает только CGI, значит wsgi здесь попросту нет. Иными словами, у него не стоит mod_wsgi. Можете использовать CGI, но лучше будет найти другого хостера. На счёт быстродействия, здесь зависит от Вашего приложения(насколько оно хорошо написано), а также от самого сервера(насколько он быстрый). На счёт взаимодействия CGI и WSGI. По сути, WSGI может работать и без подключения CGI модуля и здесь уже выбор за Вами. CGI модуль стандартной библиотеки имеет несколько удобных плюшек, например cgi.FieldStorage для разбора данных форм, но их можно разобрать и без него. Советую почитать вот это:
Why so many Python web frameworks?
webpython
Getting-started-with-wsgi
Всё на английском, но если с этим проблема, то по коду всё довольно ясно.)
Ещё рекомендую поизучать ту же Django. Для старта она прекрасно подходит. Изучайте её код. Там много поясняющих комментариев и код очень хорошо написан.
Так же советую глянуть в сторону Python Paste. Это очень хорошая библиотека, в которой есть много всего интересного, например разного рода авторизации и прочее.)
Забыл добавить.
cgi - это примерно так:
print 'Content-type: text/html\r' print '\r' print 'Hello World!'
def hello(environ, start_response): start_response('200 OK', [('Content-type', 'text/html')]) return ['Hello World!']
Отредактировано newca9h (Май 28, 2012 19:43:23)
Офлайн
newca9hЕсли я правильно понял, то для написания сайта на Python FastCGI и wsgi - это желательно, но не обязательно, а чтобы вполне адекватный по скорости сайт запустить, то достаточно хостинга с CGI?
Здравствуйте! Если хостер предлагает только CGI, значит wsgi здесь попросту нет. Иными словами, у него не стоит mod_wsgi. Можете использовать CGI, но лучше будет найти другого хостера. На счёт быстродействия, здесь зависит от Вашего приложения(насколько оно хорошо написано), а также от самого сервера(насколько он быстрый). На счёт взаимодействия CGI и WSGI. По сути, WSGI может работать и без подключения CGI модуля и здесь уже выбор за Вами. CGI модуль стандартной библиотеки имеет несколько удобных плюшек, например cgi.FieldStorage для разбора данных форм, но их можно разобрать и без него. Советую почитать вот это:
Why so many Python web frameworks?
webpython
Getting-started-with-wsgi
Всё на английском, но если с этим проблема, то по коду всё довольно ясно.)
Ещё рекомендую поизучать ту же Django. Для старта она прекрасно подходит. Изучайте её код. Там много поясняющих комментариев и код очень хорошо написан.
Так же советую глянуть в сторону Python Paste. Это очень хорошая библиотека в которой есть много всего интересного, например разного рода авторизации и прочее.)
Офлайн
Здесь зависит от количества посетителей на сайте. Цитируя википедию(
Недостаток CGI-программ в том, что они должны быть перезапущены веб-сервером при каждом запросе, что приводит к понижению производительности) можно сделать выводы. Вообще, Вам можно использовать Django для таких решений. Писать на ней просто и самое главное быстро. Развернуть на сервере можно и без wsgi/fastcgi/mod_python, но тормозить будет жутко. И здесь встаёт другой вопрос. Если Вы ограничены в средствах и хостинг, ну никак нельзя поменять, то можете написать на том же PHP(я думаю там он поддерживается) и не заморачиваться по этим wsgi и прочим. Выбор инструмента ведь за специалистом и здесь PHP лучше подойдёт(на мой взгляд). Если же со средствами нет проблем(тем более, что другой хостинг не на много дороже, если вообще дороже), то пишите с использованием WSGI, так как другой программист(или Вы через какое-то время) скажет Вам спасибо за использование понятного всем стандарта, а не своего велосипеда, который ещё и нужно собрать, настроить, защитить и т.д.
Отредактировано newca9h (Май 28, 2012 20:08:44)
Офлайн
newca9hИспользовать конечно можно и РНР, но хотелось бы Python. Проблема в хостинге. Для РНР пользуюсь hostpro.ua, но там Python только через CGI, если что-то большее, то надо брать VDS, а заказчику и нафиг не надо переплачивать, мои эстетические соображения для него не играют в данном случае роли. В Украине, кроме tophost.com.ua, с Python ни чего не встречал, но у них дороговато в сравнении с РНР.
Здесь зависит от количества посетителей на сайте. Цитируя википедию(Недостаток CGI-программ в том, что они должны быть перезапущены веб-сервером при каждом запросе, что приводит к понижению производительности) можно сделать выводы. Вообще, Вам можно использовать Django для таких решений. Писать на ней просто и самое главное быстро. Развернуть на сервере можно и без wsgi/fastcgi/mod_python, но тормозить будет жутко. И здесь встаёт другой вопрос. Если Вы ограничены в средствах и хостинг, ну никак нельзя поменять, то можете написать на том же PHP(я думаю там он поддерживается) и не заморачиваться по этим wsgi и прочим. Выбор инструмента ведь за специалистом и здесь PHP лучше подойдёт(на мой взгляд). Если же со средствами нет проблем(тем более, что другой хостинг не на много дороже, если вообще дороже), то пишите с использованием WSGI, так как другой программист(или Вы через какое-то время) скажет Вам спасибо за использование понятного всем стандарта, а не своего велосипеда, который ещё и нужно собрать, настроить, защитить и т.д.
Офлайн
Тогда два варианта:
Например мне надо сделать сайт для кафе с возможностью заказа и доставки обеда, плюс резервирование столиков
Офлайн