Насколько хорошо Python «течет» с HTML по сравнению с PHP? - PullRequest
11 голосов
/ 21 августа 2009

Я думаю о переходе с использования PHP на Python для веб-приложений, но мне было интересно, насколько Python настолько же искусен, как ткачество в HTML-коде, как и PHP. По сути, я нахожу очень простым / интуитивно понятным использование <? and ?> для размещения PHP там, где я хочу, и тогда я могу свободно организовывать / организовывать свой HTML так, как я хочу. Это так же легко сделать это с Python? По сути, вопрос таков: работа с HTML с Python похожа на работу с HTML с PHP с точки зрения простоты использования?

Редактировать: Я думаю, чтобы помочь устранить некоторые недоразумения в комментариях ниже, я понимаю, что PHP будет лучше, чем Python, в организации интерфейсной, презентационной части веб-сайта, в то время как Python преуспел бы в серверной части (фактическое программирование ...). Вопрос в том, не ошибаюсь ли я, и Python так же хорош, как PHP для front-end?

Редактирование моего Редактирования: Ах, я начинаю понимать ошибку моих путей; кажется, я неосознанно подобрал некоторые вредные привычки. Я всегда думал, что это нормально (читай: стандартный), например, чтобы PHP в псевдокоде делал следующее:

If user has filled out form:
    print this html
else:
    print this html

Когда на самом деле я должен использовать шаблон HTML, с PHP в sep. файл. И в этом сценарии PHP и Python находятся на равных, и это, вероятно, соответствует моим собственным вкусам языка программирования.

Ответы [ 5 ]

25 голосов
/ 21 августа 2009

Вы не можете легко сравнить PHP и Python.

PHP - это фреймворк веб-обработки, разработанный специально как плагин Apache. Он включает в себя обработку протокола HTTP, а также язык программирования.

Python "просто" язык программирования. Существует множество веб-фреймворков Python для подключения Python к Apache. Есть mod_wsgi , CGI, а также платформы веб-приложений различной степени сложности.

«Использование для размещения PHP там, где я хочу» не совсем подходит для оценки Python как языка для создания веб-приложений.

Фреймворк (например, Pylons , Django , TurboGears и т. Д.) Отделяет представление (шаблоны HTML) от программирования и доступа к базе данных. PHP объединяет все три аспекта веб-приложения в одну вещь - язык PHP.

Если вы хотите переключиться с PHP на Python, вы должны сделать следующее.

  1. Начните без предубеждения, без предвзятости, ничего.

  2. Начните все сначала с учебника по выбранной вами платформе. Пройдите весь урок, не сравнивая ничего, что вы делаете с PHP.

  3. Начните все сначала с решения выбранной проблемы с выбранной платформой. Создайте все это, не сравнивая ничего, что вы делаете с PHP.

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

Люди, которые задают вопросы, такие как Python - substr , Java и Python-эквивалент foreach php ($ array as $ key => $ value) , Что такое Python-эквивалент в PHP $ _SERVER? иногда пытаются сопоставить свои знания PHP с Python. Не делай этого.

Единственный способ начать использовать веб-фреймворк Python - начать полностью заново.


Редактировать

Все веб-фреймворки Python имеют некоторые возможности «логики представления» в своих шаблонизаторах. Это «скользкий уклон», где вы можете легко превратить простой шаблон в беспорядок. Очевидно, что простые конструкции {% if %} и {% for %} полезны для упрощения условных и повторяющихся элементов шаблона HTML.

Кроме того, становится неясным, сколько энергии нужно вкладывать в язык тегов.

С одной стороны, у нас есть PHP / JSP и связанные технологии, где механизм шаблонов может (и часто делает) все. Это превращается в беспорядок. В середине находятся Jinja и Mako , где шаблонизатор может многое сделать. На другом конце находится Django, где механизм шаблонов делает как можно меньше, чтобы избежать смешивания логики представления и обработки.

2 голосов
/ 21 августа 2009

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

Работа с запросом выполняется в контроллерах с использованием модели для сбора данных. Затем результаты публикуются в представлении, которое фактически является шаблоном HTML.

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

В PHP это часто делается с помощью альтернативного синтаксиса PHP .

2 голосов
/ 21 августа 2009

Хорошо. Прежде всего, вы должны знать, что смешивать код с презентацией считается плохой практикой. Хотя вы можете использовать шаблонизаторы, которые позволяют вам смешивать любой код Python внутри HTML, например Mako , обычно веб-библиотеки и фреймворки Python предпочитают писать логику в файле скрипта Python и отдельный шаблон HTML для визуализации результаты.

Тем не менее, python намного проще, чем PHP.

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

Если вы хотите PHP, нет ничего более PHP, чем сам PHP, и python использует разные подходы, поэтому, возможно, вы будете разочарованы, потому что вещи не такие, как вы привыкли.

Однако, если вы ищете новый, лучший способ сделать что-то, Python для вас.

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

1 голос
/ 21 августа 2009

Прежде всего: выход на язык программирования из HTML - это хорошо, когда вы делаете небольшие хаки. Для реального производственного веб-приложения я бы никогда этого не сделал.

Смешивать HTML с языком программирования непрактично. Лучше использовать какой-нибудь язык шаблонов. Отступы не являются проблемой в Python больше, чем любой другой язык.

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

0 голосов
/ 21 августа 2009

Да, PHP прост в использовании таким образом. Но это не рекомендуемый способ! Лучше вы используете шаблоны. Фактически, вы можете использовать то же самое с PHP.

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