Программировать веб-приложения на python без фреймворка? - PullRequest
34 голосов
/ 16 февраля 2010

Я только запускаю Python, и мне было интересно, как бы я занялся программированием веб-приложений без необходимости в фреймворке. Я опытный PHP-разработчик, но у меня есть желание попробовать Python, и я обычно люблю писать с нуля без ограничений фреймворка.

Ответы [ 7 ]

31 голосов
/ 16 февраля 2010

WSGI - это стандарт Python для интерфейсов веб-сервера. Если вы хотите создать свой собственный фреймворк или работать без фреймворка, вы должны изучить это. В частности, я нашел полезную статью от от Ian Bicking.

Кроме того, я склонен думать, что фреймворки полезны, и лично использую Django, например, как работает Pylons, и в прошлом использовали Bottle для создания прототипов - вы можете посмотреть на Bottle Вы хотите, чтобы ваш микрофон оставался в стороне.

3 голосов
/ 16 февраля 2010

Один из самых легких каркасов - mod_wsgi. Все, что меньше - это огромный объем работы по разбору HTTP-запросов на поиск заголовков, URI и методов, а также анализ запросов / данных GET или POST, обработка загрузки файлов, файлов cookie и т. Д.

Как таковой, mod_wsgi будет обрабатывать только основы анализа запросов и формирования результатов.

Сеансы, файлы cookie, использование генератора шаблонов для ваших страниц ответов - это удивительный объем работы.

Как только вы начнете идти по этому пути, вы можете обнаружить, что небольшая поддержка фреймворка имеет большое значение.

2 голосов
/ 16 февраля 2010

Вам придется посмотреть что-то вроде CGI или FastCGI , который предоставляет API для связи с веб-сервером.

Google App Engine позволяет писать простые приложения и даже предоставляет локальный веб-сервер, на котором вы можете что-то попробовать.

1 голос
/ 17 февраля 2010

Люди здесь любят рамки.Один из недостатков, который я заметил, заключается в том, что в Python отсутствует удобный модуль для Sessions в качестве встроенной библиотеки, несмотря на то, что он доступен в PHP и как CGI :: Session в Perl.

import cgi  # if you want to work with forms and such
import cgitb; cgitb.enable()  # to barf up errors to the web
print 'Content-type: text/html\n\n'  # to start off any HTML.

Вам придется самостоятельно писать материал для сессии.

1 голос
/ 16 февраля 2010

Вам следует попробовать web.py, он предоставляет минимум функций, которые вам не мешают.

http://webpy.org/

0 голосов
/ 17 февраля 2010

Ответ - нет. Использование инфраструктуры делает ваш код более понятным, масштабируемым, читаемым, тестируемым и модульным.

0 голосов
/ 16 февраля 2010

Для программиста PHP я думаю, mod_python - хороший способ начать работу без какой-либо платформы. Может использоваться непосредственно как модуль Apache 2. Вы можете иметь кодовые теги (например, <? ?> в PHP) и даже условный вывод HTML (HTML внутри оператора if):

<%
if x == y:
   # begin
%>

  ... some html ...

<%
# end
%>

(упрощенный пример взят из onlamp.com Руководство по страницам Python Server Pages )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...