Это продолжение двавопросов, я спросил примерно неделю назад. В результате я создавал прототип приложения на основе ИИ для Интернета, и мне было интересно, какой язык (и) использовать. Казалось, что я должен пойти на что-то вроде python, а затем преобразовать все критические биты во что-то более быстрое, например, Java или C / C++.
Для меня это звучит нормально, но теперь мне интересно, действительно ли Python является правильным языком для создания веб-приложений. Большинство веб-приложений, над которыми я работал в прошлом, были C / C++ CGI, а затем php. Мне было намного проще работать с php, поскольку он значительно упростил привязку пользовательского интерфейса к серверной части, а также имел для меня более логичный смысл.
Раньше я не использовал python, но в основном мне интересно, насколько легко программировать CGI на python? Придется ли мне вернуться к утомительному способу сделать это на C / C++, где вы должны хранить HTML-код в шаблонах, а CGI читать их и заменять специальные коды соответствующими значениями, или возможно, чтобы шаблоны быть были код как с php?
Я, вероятно, задаю здесь совершенно невежественный вопрос, за который прошу прощения, но, надеюсь, кто-нибудь будет знать, к чему я клоню! Мой общий вопрос: является ли написание веб-приложений на python хорошей идеей, и насколько это просто, как с php?






Python - хороший выбор.
Однако я бы избегал модели CGI - вы будете платить большой штраф за запуск интерпретатора при каждом запросе. Большинство веб-фреймворков Python поддерживают стандарт WSGI и могут быть подключены к серверам множеством способов, но большинство из них находятся в каком-то длительном процессе, с которым взаимодействует веб-сервер (через прокси, FastCGI, SCGI и т. д.).
Говоря о фреймворках, ландшафт Python уже созрел для них. Это и хорошо, и плохо. Есть много хороших вариантов, но новичка это может отпугнуть.
Если вы ищете что-то, что поставляется с интеграцией web / DB / шаблонов, я бы посоветовал взглянуть на Джанго, TurboGears или Пилоны. Если вы хотите иметь больший контроль над отдельными компонентами, посмотрите на CherryPy, Colubrid или web.py.
Что касается того, так же ли это «просто, как PHP», это субъективно. Обычно рекомендуется хранить ваши шаблоны и логику приложения отдельно в мире веб-программирования Python, что может упростить ваш жизнь. С другой стороны, возможность написать весь код для страницы в файле PHP - это еще одно определение «простого».
Удачи.
Я бы предложил Джанго, но, учитывая, что вы просите что-то "так же просто, как и с php", вы должны взглянуть на PSP (Страницы сервера Python). Хотя Django - это полноценный фреймворк для создания веб-сайтов, PSP можно использовать так же, как и PHP, без какой-либо инфраструктуры.
На python писать веб-приложения проще, чем на php. В особенности потому, что Python - не ломаный язык.
Выберите веб-фреймворк, поддерживающий mod_wsgi, или разверните свой собственный. Приложения WSGI действительно легко развернуть после того, как вы отвлечетесь от этого.
Если вам нужны шаблоны, то genshi - это лучший шаблонизатор, который я нашел для python, и вы можете использовать его, как хотите.
"Насколько легко программировать CGI на Python?" Это точно проще, чем C. Python проще, потому что - просто - с ним легче работать, чем с C. Прежде всего: нет выделения-освобождения памяти. Кроме того, модель программирования OO превосходна.
Помимо основной простоты языка, со стандартом Python WSGI гораздо проще справиться, чем со стандартом CGI.
Однако необработанный CGI - огромная боль по сравнению со значительно упрощенным миром фреймворка, полностью основанного на Python (TurboGears, CherryPy, Джанго, что угодно).
Фреймворки налагают много (необходимой) структуры. Готовый опыт программиста CGI состоит в том, что этому слишком многому нужно научиться. Правда. Все новое - слишком много, чтобы учиться. Однако стоимость намного превышает вложения.
С Django вы готовы к работе за считанные минуты. Серьезно. django-admin.py startproject, и у вас есть то, что можно запустить практически сразу. Вам нужно создать свои URL-адреса, написать функции просмотра и разработать шаблоны страниц. Все это работает. Но это меньше работает, чем CGI в C.
Django имеет лучшую архитектуру, чем PHP, потому что шаблоны представления полностью отделены от обработки. Это приводит к некоторой путанице (см. Синтаксическая ошибка всякий раз, когда я помещаю код Python в шаблон django), когда вы хотите использовать свободный и неограниченный стиль PHP в среде Django.
связывание пользовательского интерфейса с серверной частью
Интерфейс Python (например, Django) использует функции просмотра Python. Эти функции просмотра могут содержать любой код Python. Сюда входят, при необходимости, модули, написанные на C и вызываемые из Python.
Это означает, что вы можете скомпилировать модуль ЗАЖИМЫ с дружественным для Python интерфейсом. Он становится чем-то доступным для вашего кода Python с помощью оператора import.
Однако иногда это неэффективно, потому что ваши страницы Django ждут завершения работы механизма CLIPS. Альтернативой является использование чего-то вроде именованного канала.
У вас есть приложение на основе CLIPS, полностью написанное на C, которое читает из именованного канала. Ваше приложение Django, полностью написанное на Python, пишет в этот именованный канал. Поскольку у вас есть два независимых процесса, вы очень быстро максимально быстро исчерпаете все свои ядра.
PHP легче избавиться от первых 80% вашего сайта. Последние 20 сложнее, и обслуживание ужасное. Если вы потратите время на то, чтобы сделать это правильно с PHP в самом начале (фреймворк), это займет столько же времени, сколько веб-фреймворк Python.