¿Puedo escribir la interfaz de un sitio web usando Python?

TL; DR , puedes. Pero NO , probablemente no lo harías.

Bien, permítanme comenzar explicando qué hacen HTML y CSS.

HTML (Lenguaje H arper t ext M arkup) NO es un lenguaje de programación. Es un lenguaje de marcado . Se utiliza un lenguaje de marcado para representar la información de modo que sea más fácil darle sentido. Entonces, cuando escribes HTML, le dices al navegador cómo debe leer tus datos. Otros lenguajes de marcado? XML, JSON, YAML. HTML es solo un tipo especial de lenguaje de marcado, que los navegadores usan para dibujar una página web.

CSS (Cascading Style Sheets), por otro lado, se usa para diseñar HTML. Es decir, se utiliza para decirle al navegador cómo debe agregar diferentes elementos de estilo (color, bordes, fuentes, ancho, alto, etc.) a los datos HTML que acaba de leer. HTML y CSS combinados es cómo el navegador construye una página web. Nuevamente, CSS NO es un lenguaje de programación.

Entonces, eso elimina HTML y CSS de la ecuación. JavaScript, sin embargo, es un caso diferente.

JavaScript ES un lenguaje de programación. Al igual que Python, es un lenguaje de script. Ambos lenguajes están completos, por lo que es posible hacer todo con Python que puede hacer con JavaScript. Entonces, sí, Python PUEDE en teoría reemplazar JavaScript como el lenguaje de script del navegador. Los navegadores vienen construidos con un motor de JavaScript, que analiza su JavaScript y hace los cálculos. Uno puede crear un motor Python y enviarlo con un navegador, y puede usar Python igual de bien. Brython es un buen ejemplo de implementación de Python en el lado del cliente, que es un intérprete de Python escrito en JavaScript.

PERO.

Volviendo a la pregunta de si Python realmente reemplazará JavaScript, es NO , en mi humilde opinión. JavaScript es adecuado para el navegador por muchas razones (velocidad, peso ligero, legado, etc.), lo que lo hace preferible a Python. Entonces, no, Python no está invadiendo el lado del cliente.

¡Absolutamente!

Puedes hacer lo que quieras con Python, ese es el propósito de un lenguaje de programación.

El desarrollo web frontend no es nada que desafíe a Python.

Se divide en tres partes fundamentales, HTML, CSS y Javascript.

Python es capaz de generar los tres con facilidad mediante el uso de analizadores, compiladores y transpiladores.

HTML es bastante simple, aunque feo y muy débil en cuanto a características, formato que es bastante simple de generar. Realmente depende de cuánto desea usar, pero hay bibliotecas de Python que pueden hacerlo así

Generar HTML con Python

CSS es una historia similar, mientras que HTML es responsable del aspecto general del sitio web, CSS se enfoca en el diseño de su interfaz, nuevamente un formato simple con características limitadas, puede usar una biblioteca de Python como esta

Índice del paquete de Python

Y finalmente está Javascript, la única parte sofisticada del front-end, JS es un lenguaje de secuencias de comandos limitado con solo una fracción de las capacidades de Python pero aún lo suficientemente flexible como para proporcionar habilidades interactivas en un sitio web. Las bibliotecas de Python que pueden generar JS y para cualquier otro idioma se llaman transpillers

Transcrypt – Python en el navegador – ¡Lean, rápido, abierto!

El desarrollo web de backend es básicamente un desarrollo de escritorio, que le da acceso a todo el poder sin procesar de Python y todos sus poderes. Una aplicación de back-end es básicamente una aplicación de escritorio diseñada para ejecutarse en un servidor utilizando capacidades web mediante el uso de una biblioteca web C optimizada como Apache.

————————————— SIN RELACIÓN CON LA PREGUNTA ———————————-

No era mi intención agregar esto a mi respuesta inicial, así que no lo hice. Pero debido a que alguien preguntó en los comentarios, teniendo que evitar que me lo preguntaran una y otra vez, agrego esto aquí para aclarar exactamente lo que quiero decir.

PD: Para aclarar por qué Python es mucho más poderoso para Javascript, eso tiene que ver con 3 factores.

  1. Python no está diseñado para ejecutarse dentro de un navegador y, por lo tanto, no está protegido. Lo que significa que está mucho más equipado para funcionar como un lenguaje muy poderoso. Lo que significa que tiene bibliotecas de terceros para hacerlo a una extensión mucho más grande, incluso en comparación con JS que se ejecuta en node.js.
  2. Python es uno de los lenguajes mejor diseñados, JS es uno de los peores. Los defectos y las fortalezas de diseño de ambos idiomas han sido bien documentados.
  3. Python es uno de los lenguajes de alto rendimiento, aunque es uno de los peores. Esta ironía ocurre porque, por supuesto, Python es un lenguaje dinámico que utiliza una VM no JIT que hace que su código sea significativamente más lento. Pero debido a que el lenguaje siempre ha hecho que sea muy fácil portar bibliotecas C, llevó a Python a ser la opción número 1 para portar bibliotecas C y C ++ a otro lenguaje “más fácil de usar”. Muchos de esos bibliotecarios no solo otorgan amplias capacidades a Python que no se conocen en JS (acceso completo a la GPU, acceso de bajo nivel a la codificación parrarel, motores de juegos 3D completos, etc.) sino que también le dan acceso a Python a un código de máquina altamente optimizado que acelera el dominio más allá la posible velocidad de su VM en algunos casos miles de veces más rápido. La velocidad de VM se impone solo en el código de bytes de Python y no en el código de máquina. Entonces, cuando Python VM llama a una biblioteca C (usando ctypes de C Python API), no pierde rendimiento, más el tiempo que toma hacer la llamada a la función y, por lo tanto, permite que su código Python se ejecute a la velocidad del código de máquina y Muy optimizado. Es por eso que Python es tan popular en la codificación de alto rendimiento.

Entonces sí, aunque JS potencialmente puede hacer lo que CPython está haciendo, carece de las bibliotecas para hacerlo fuera de la caja. Lo que significa que tendrá que escribir ese código usted mismo y eso cuesta un tiempo valioso.

No, Python no puede reemplazar HTML, CSS o JavaScript, pero seguramente puede crear archivos HTML con él (programación CGI). Ahora la pregunta es por qué en el mundo alguien desearía crear páginas HTML usando Python.

Es para generar páginas web durante el tiempo de ejecución, por ejemplo, no utilicé cookies para mantener sesiones (un experimento divertido) y en su lugar utilicé las variables CGI junto con la base de datos.

Entonces, cada vez que necesitaba verificar si un usuario había iniciado sesión o no, tenía que buscar en la base de datos qué corse no podía ser posible sin presionar un script de back-end (o Ajax). Por lo tanto, creé la página deseada usando Python, el script verificará si el usuario ha iniciado sesión o no y renderizará la página en consecuencia.

Aquí está el truco para crear páginas web en Python:

print ‘Tipo de contenido: texto / html \ n’

La línea anterior es como un encabezado para que el navegador trate este archivo de Python como una página HTML. Ahora, lo que imprima después de esta línea se tratará como contenido de una página HTML.

Python se usa para realizar secuencias de comandos del lado del servidor cuando se usa en una aplicación web. Puede enviar una respuesta a una solicitud usando python desde el lado del servidor, pero luego la respuesta es solo html. Para que una página web / respuesta sea presentada por un navegador del lado del cliente, TIENE que ser html / js / css.
Entonces no, no puede usar python como reemplazo de html / css / js.

No Python, Ruby u otros lenguajes similares no se pueden usar como un reemplazo para HTML.

HTML es un lenguaje de marcado. HTML le dice al navegador dónde están ciertos elementos en la página y cómo estos elementos funcionan juntos. Pero en realidad no hace nada y no se puede programar para hacer nada.

Mira este código:

  

¡Soy un título!

Tenemos una etiqueta

aquí.

La etiqueta

está dentro de la etiqueta

.

HTML le dice al navegador que el

está dentro del

a

través de este formato. El

está literalmente dentro de la etiqueta

en el código.

Pero este código en realidad no contiene una función: es solo un conjunto de instrucciones de visualización escritas por el usuario para el navegador.

Ahora mira este código:

  función def ():
	 si 1 === 1:
		 print ("Hola")
	 más:
		 imprimir (5)

Esta es una función en python. En el caso de un entorno basado en navegador, le dice al navegador que imprima “Hola” si [math] 1 = 1 [/ math]. 1 siempre será igual a sí mismo, por lo que esta función siempre imprimirá “Hola” y nunca imprimirá [matemática] 5 [/ matemática].

Básicamente, no puedes crear un sitio web en python porque no está hecho para eso. En otras palabras, es un lenguaje de programación, no un lenguaje de marcado.

CSS tiene un propósito muy similar al HTML, pero CSS es literalmente solo para agregar estilo. Ni siquiera puede crear un sitio web en CSS porque está hecho, teóricamente, como una extensión de HTML para agregar estilo.

Espero que mi respuesta tremendamente larga aclare su confusión y, como siempre, una programación feliz.

Los sitios generalmente están escritos por HTML y CSS. Pero por mi experiencia, debo decir que me lleva un millón de horas hacer un sitio que funcione bien por mí mismo. Por supuesto, puede usar constructores de sitios, pero entonces no sería su sitio creativo, pero
convencional. Una alternativa más: puede solicitar el desarrollo de la página de destino, y los expertos harán que su sitio sea de cualquier complejidad y para cualquier propósito

Sí, puedes, por ejemplo, con Transcrypt.

Comprobar brython 🙂

@http: //www.brython.info/

More Interesting

¿Cuál es la mejor manera de implementar una aplicación meteor.js?

¿Cuáles son los mejores elementos de la interfaz de usuario (controles, patrones, etc.) que han surgido recientemente en sitios web modernos y aplicaciones web?

¿Por qué algunas personas eligen usar Quora en lugar de escribir un blog?

¿Cuáles son los conceptos básicos de Java en los que debo centrarme para aprender el desarrollo de aplicaciones web?

¿Por qué no podemos usar un lenguaje de compilación en una aplicación web directamente?

¿Cuál es una gran herramienta basada en navegador para dibujar árboles de decisión?

¿Por qué la mayoría de las aplicaciones web solo están diseñadas para adaptarse a la mitad de la pantalla en un monitor grande?

¿Cuáles son las aplicaciones de los diversos mecanismos de sincronización en el kernel de Linux?

¿Cómo puede Java ser un back-end para una aplicación web?

¿Cuál es el mejor y único sitio web / aplicación web para hacer en 1 día de duración?

¿Qué debo aprender primero para convertirme en un desarrollador web back-end?

¿Es mejor desarrollar una base de datos para una aplicación web Django bastante grande por separado en MySQL o dejar que los modelos Django lo hagan por usted?

¿Qué opinas de mi aplicación web de establecimiento de objetivos www.livetochallenge.com?

¿Es MySQL la base de datos más favorecida para desarrollar aplicaciones web en Python y Rails?

Cómo elegir las mejores tecnologías para mi aplicación web