¿Qué tan bien “fluye” Python con HTML en comparación con PHP?

Estoy pensando en pasar de usar PHP a Python para aplicaciones web, pero me preguntaba si Python es tan hábil como tejer dentro y fuera de HTML como lo es PHP. Básicamente, me resulta muy fácil / intuitivo usar poner PHP donde quiero, y luego ser libre de organizar / organizar mi HTML como yo quiera. ¿Es tan fácil hacer esto con Python? Fundamentalmente, la pregunta es: ¿trabajar con HTML con Python es similar al trabajo con HTML con PHP en términos de facilidad de uso?

Editar: Supongo que para ayudar a aclarar algo de la confusión en los comentarios a continuación, tengo la intuición de que PHP sería mejor que Python para organizar el front-end, la parte de presentación de un sitio web, mientras que Python se destacaría en el back-end parte (la progtwigción real …). La pregunta es: ¿me equivoco y Python es tan bueno como PHP para el front-end?

Edición de mi Edición: Ah, estoy empezando a entender el error de mis maneras; parece que sin saberlo he recogido algunos malos hábitos. Siempre pensé que estaba bien (leer: estándar) para, por ejemplo, tener PHP en pseudo-código de hacer lo siguiente:

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

Cuando en realidad debería usar una plantilla HTML, con el PHP en un sep. archivo. Y en ese escenario, PHP y Python están en un campo de batalla par y es probable que esté a la altura de mis propios gustos del lenguaje de progtwigción.

No se puede comparar fácilmente PHP y Python.

PHP es un marco de procesamiento web diseñado específicamente como un complemento de Apache. Incluye el manejo del protocolo HTTP, así como un lenguaje de progtwigción.

Python es “solo” un lenguaje de progtwigción. Hay muchos frameworks web de Python para conectar Python a Apache. Hay mod_wsgi , CGI’s, así como frameworks de aplicaciones web de diversos grados de sofisticación.

El “uso para poner PHP donde quiero” no es realmente una forma apropiada de juzgar Python como lenguaje para construir aplicaciones web.

Un marco (como Pylons , Django , TurboGears , etc.) separa la presentación (plantillas HTML) de la progtwigción del acceso a la base de datos. PHP combina los tres aspectos de una aplicación web en una sola cosa: el lenguaje PHP.

Si desea cambiar de PHP a Python, debe hacer lo siguiente.

  1. Comience sin preconcepción, sin sesgo, nada.

  2. Comience de nuevo con un tutorial sobre el marco que ha elegido. Haz todo el tutorial sin comparar nada de lo que estás haciendo con PHP.

  3. Comience a resolver su problema elegido con el marco que ha elegido. Construye todo sin comparar nada de lo que estás haciendo con PHP.

Una vez que haya creado algo utilizando un marco web basado en Python, sin comparar nada con PHP, puede dar un paso atrás y comparar y contrastar las dos cosas.

Las personas que hacen preguntas como Python – substr , java y python equivalen a foreach de php ($ array as $ key => $ value) , ¿qué es python equivalente a PHP $ _SERVER? a veces intentan asignar sus conocimientos de PHP a Python. No hagas esto

La única forma de comenzar a usar un framework web de Python es comenzar completamente fresco.


Editar

Todos los frameworks web de Python tienen algunas capacidades de “lógica de presentación” en sus motores de plantillas. Esta es una “pendiente resbaladiza” donde puedes convertir fácilmente una simple plantilla en un desastre. Claramente, una construcción simple {% if %} y {% for %} es útil para simplificar elementos condicionales y repetitivos de una plantilla HTML.

Más allá de eso, comienza a oscurecerse cuánto poder se debe poner en el lenguaje de las tags.

En un extremo tenemos PHP / JSP y tecnologías relacionadas donde el motor de plantillas puede (y lo hace) hacer de todo. Esto se convierte en un desastre. El centro es Jinja y Mako, donde el motor de plantillas puede hacer mucho. En el otro extremo está Django, donde el motor de plantillas hace lo mínimo posible para evitar mezclar la presentación y la lógica de procesamiento.

Bien. Antes que nada, debes saber que mezclar el código con la presentación se considera una mala práctica. Aunque puede usar motores de plantillas que le permiten mezclar cualquier código python dentro del html, como Mako , generalmente las bibliotecas y frameworks python tienden a favorecer la escritura de lógica en un archivo de script python y una plantilla html separada para representar los resultados.

Dicho esto, Python es mucho más fácil que PHP.

Pero solo puedes ser productivo en Python si estás dispuesto a aprender su forma de progtwigr.

Si quieres PHP, nada es más PHP que PHP, y Python toma diferentes enfoques, así que tal vez te sentirás frustrado porque las cosas no son como las que estás acostumbrado.

Sin embargo, si está buscando una forma nueva y mejor de hacer las cosas, Python es para usted.

Después de leer el tutorial básico de Python , pruebe algunos frameworks de python como pilones y compruébelo usted mismo.

Si avanzaras hacia un framework web de MVC, verías que tanto PHP como Python usan HTML de manera similar.

El trabajo en torno a la solicitud se realiza en los controladores, utilizando el modelo para capturar datos. Los resultados luego se publican en una vista, que en realidad es una plantilla de HTML.

Puede tener un archivo HTML bien estructurado como vista y su controlador simplemente le dirá con qué poblarse.

En PHP esto se hace a menudo con la syntax alternativa de PHP .

En primer lugar: escaparse a un lenguaje de progtwigción de HTML es bueno cuando haces pequeños hacks. Para una aplicación web de producción real, nunca lo haría.

Mezclar en HTML en el lenguaje de progtwigción no es práctico. Es mejor usar algún tipo de lenguaje de plantillas. La sangría no es un problema allí en Python más que en cualquier otro idioma.

Pero, para responder a su pregunta real: es lo mismo. Existen lenguajes de creación de plantillas de Python que le permiten escaparse también a Python, si así lo desea. Preferiría recomendar que no lo haga, pero puede hacerlo.

Sí, PHP es fácil de usar de esa manera. ¡Pero esa no es la manera recomendada! Es mejor que uses plantillas. De hecho, puedes usar lo mismo con PHP también.