Использование python для создания веб-приложений - PullRequest
8 голосов
/ 14 ноября 2008

Это продолжение двух вопросов Я спрашивал неделю назад или около того. Результатом этого стало то, что я создавал прототип приложения на основе искусственного интеллекта для Интернета, и мне было интересно, какой язык (языки) использовать. Похоже, я пришел к выводу, что я должен пойти на что-то вроде python, а затем преобразовать любые критические биты во что-то более быстрое, например Java или C / C ++.

Это звучит хорошо для меня, но мне интересно, действительно ли Python является правильным языком для создания веб-приложения. Большинство веб-приложений, над которыми я работал в прошлом, были C / C ++ CGI и затем php. С php, с которым мне было намного проще работать, так как он значительно облегчил привязку пользовательского интерфейса к бэк-энду, а также он стал более логичным для меня.

Раньше я не использовал python, но мне интересно, насколько легко CGI-программирование на python? Придется ли мне возвращаться к утомительному способу сделать это в C / C ++, где вам нужно хранить HTML-код в шаблонах и делать так, чтобы CGI считывал их и заменять специальные коды соответствующими значениями, или возможно иметь шаблоны * 1009? * be код как с php?

Я, вероятно, задаю здесь глубоко невежественный вопрос, за который прошу прощения, но, надеюсь, кто-то узнает, к чему я клоню! Мой общий вопрос: является ли хорошая идея писать веб-приложения на python, и так же легко, как и с php?

Ответы [ 4 ]

17 голосов
/ 14 ноября 2008

Python - хороший выбор.

Хотя я бы избегал модели CGI - вы будете платить большое штраф за запуск интерпретатора при каждом запросе. Большинство веб-фреймворков Python поддерживают стандарт WSGI и могут подключаться к серверам множеством способов, но большинство из них живут в каком-то длительном процессе, с которым веб-сервер взаимодействует (через прокси, FastCGI, SCGI и т. Д.).

Говоря о фреймворках, ландшафт Python созрел с ними. Это и хорошо, и плохо. Есть много прекрасных вариантов, но это может быть пугающим для новичка.

Если вы ищете что-то, что поставляется в комплекте с веб / БД / интеграцией шаблонов, я бы посоветовал взглянуть на Django , TurboGears или Pylons . Если вы хотите лучше контролировать отдельные компоненты, посмотрите на CherryPy , Colubrid или web.py .

Что касается того, насколько это просто, как PHP, это субъективно. Обычно рекомендуется разделять шаблоны и логику приложений в мире веб-программирования Python, что может упростить вашу жизнь . С другой стороны, возможность написать весь код страницы в файле PHP - это еще одно определение слова «легкий».

Удачи.

8 голосов
/ 14 ноября 2008

"Насколько просто CGI-программирование на python?" Проще чем С, это точно. С Python проще, потому что - просто - с ним проще работать, чем с C. Прежде всего: нет выделения-освобождения памяти. Кроме того, модель программирования ОО отлично.

Помимо существенной языковой простоты, стандарт Python WSGI гораздо легче справиться, чем стандарт CGI.

Тем не менее, сырой CGI представляет собой огромную боль по сравнению с очень упрощенным миром полностью Python-фреймворка ( TurboGears , CherryPy , Django , независимо от .)

Каркасы накладывают много (необходимой) структуры. Опыт программиста CGI в том, что это слишком много, чтобы учиться. Правда. Все новые вещи слишком много, чтобы учиться. Тем не менее, стоимость намного превышает инвестиции.

С Django вы работаете в течение нескольких минут. Шутки в сторону. django-admin.py startproject и у вас есть кое-что, что вы можете запустить почти сразу. Вы должны разработать свои URL, написать функции просмотра и дизайн шаблонов страниц. Все это работа. Но это меньше работы, чем CGI в C.

Django имеет лучшую архитектуру, чем PHP, потому что шаблоны презентаций полностью отделены от обработки. Это приводит к некоторой путанице (см. Синтаксическая ошибка всякий раз, когда я помещаю код Python в шаблон django ), когда вы хотите использовать свободный и неограниченный стиль PHP в инфраструктуре Django.

связывание пользовательского интерфейса с серверной частью

Внешний интерфейс Python (например, Django) использует функции представления Python. Эти функции просмотра могут содержать любой код Python. Это включает, если необходимо, модули, написанные на C и вызываемые из Python.

Это означает, что вы можете скомпилировать модуль CLIPS с Python-friendly интерфейсом. Это становится чем-то доступным для вашего кода Python с помощью оператора import.

Иногда, однако, это неэффективно, потому что ваши страницы Django ждут завершения работы движка CLIPS. Альтернатива - использовать что-то вроде именованного канала.

У вас есть приложение на основе CLIPS, полностью написанное на C, которое читает из именованного канала. Ваше приложение Django, полностью написанное на Python, записывает в этот именованный канал. Поскольку у вас есть два независимых процесса, вы максимально быстро максимально увеличите количество своих ядер, как это.

5 голосов
/ 14 ноября 2008

Я бы предложил Django , но, учитывая, что вы просите что-то "столь же простое, как с php" , вы должны взглянуть на PSP ( Python Server Страницы ). В то время как Django представляет собой законченный фреймворк для создания веб-сайтов, PSP можно использовать так же, как PHP, без каких-либо фреймворков.

3 голосов
/ 14 ноября 2008

На python писать веб-приложения проще, чем на php. Особенно потому, что python не является ломаным языком.

Подберите какой-нибудь веб-фреймворк, поддерживающий mod_wsgi, или разверните свой собственный. Приложения WSGI действительно просты в развертывании после того, как вы их удержите.

Если вам нужны шаблоны, тогда genshi - лучший шаблонизатор, который я нашел для python, и вы можете использовать его как хотите.

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