2011-01-13 15 views
5

Quería probar python para crear páginas web en lugar de usar php. Sin embargo, me di cuenta de que necesita mod_python o mod_wsgi instalado en apache para que funcione con python. Si ahora usa pure, no estoy seguro si debería decirse pure, código python, sin usar frameworks web como django. Descubrí que hacer una página simple tiene un aspecto diferente en mod_python y en mod_wsgi.¿Dos formas de hacer páginas web basadas en Python?

¿Cómo es que ?, mientras más miraba en Python, parecía ser un lenguaje más difícil de usar para hacer páginas web que lo compararan con php. ¿Hay algún buen punto de partida para aprender el desarrollo web de Python?

Lo siento si mi pregunta es borrosa. Simplemente quiero una guía para comenzar con el desarrollo web python

+0

Por qué no utilizar Django, no hay nada de especial en python puro a menos que necesite implementarlo. – orlp

+0

Sí, si solo estás explorando Python, prueba un framework como Django o Pylons. Estoy haciendo lo mismo, y tengo Pylons funcionando en mi computadora portátil Ubuntu con solo una o dos horas de juguetear. (Por supuesto, todavía tengo mucho que leer para familiarizarme con todas las ofertas del framework, pero al menos ahora puedo hacer páginas básicas.) – keithjgrant

+1

La razón por la que parece "más difícil" utilizar marcos como estos a primera vista es simplemente porque desarrollar de esta manera es más organizado, separando preocupaciones diferentes y evitando que los desarrolladores simplemente descarguen código en cualquier lugar, mezclando presentación, lógica y acceso a datos. Ésto es una cosa buena. –

Respuesta

3

Sí, hacer una página web con python sin usar un framework web es más difícil que en php. Esto es por diseño, ya que le da mucho más control sobre cómo su página interactúa con el servidor, lo que le permite crear sitios que se adaptan bien, entre otros beneficios. WSGI es la forma moderna de interactuar con un servidor, pero como observó, incluye muchos de los aspectos prácticos que PHP oculta al usuario.

Si está buscando una experiencia similar a php para python, puede consultar web.py o Flask. Son bastante minimalistas en lo que respecta a los marcos, y se encargan de interactuar con el servidor pero, por lo demás, se mantienen fuera de su camino.

Dicho esto, realmente debe considerar Django u otro marco similar: proporcionan algunos beneficios realmente grandes que lo ayudan a obtener rápidamente lo que de otra manera serían complejos sitios. Resuelven un problema ligeramente diferente y proporcionan diferentes soluciones de los marcos de PHP comunes, por lo que debe considerarlos incluso si no le gustan los marcos en PHP.

Si quiere hacer cosas de una manera aún más parecida a php, puede usar CGI. Definitivamente no es una solución recomendada, y no le enseñará las mejores prácticas para avanzar, pero puede comenzar ...

Realmente, considere un marco. Es la forma en que se realiza la mayor parte del desarrollo en Python para la web, y aprenderás habilidades más útiles si desarrollas usando una.

0

Puede usar el ordinario CGI, que es realmente simple. Crear un programa de Python que se ve algo como esto:

#!/usr/bin/env python 

import sys 

sys.stdout.write("Content-type: text/html\r\n\r\n") 

print("Hello <em>world</em>!") 

Establecer como archivo ejecutable (chmod +x) y la puso en un directorio que haya configurado para archivos CGI en su servidor web.

También encontrará el módulo estándar de Python cgi muy útil.

1

mod_wsgi es mejor, porque está basado en la especificación WSGI, que define la interfaz entre las aplicaciones web (o frameworks) y los servidores web. Una aplicación WSGI en su forma más simple no es más que una función que envía algunos encabezados HTTP a través de una devolución de llamada y devuelve una cadena en respuesta a la información sobre una solicitud HTTP. Y como muchos servidores web implementan WSGI, no está vinculado a Apache.

Lo más cerca que puede llegar al desarrollo web sin marco puro en Python es escribir la aplicación WSGI directamente. Esto realmente te ayudará a ver las cosas que un marco como Django ocultará.

Para facilitar las cosas, puede considerar usar Werkzeug, que es una biblioteca de utilidades para WSGI.Tiene muchos componentes que son como marcos, pero puede elegir cuáles quiere y cuáles no. Por ejemplo, tiene un sistema realmente ordenado para analizar y enviar URL. Werkzeug también tiene un servidor WSGI de línea de comando simple que es probablemente mejor para el desarrollo que Apache.

0

Si su objetivo es hacer que su programa python sea compatible con la web, entonces la respuesta es Cherrypy. Es un marco muy flexible y simple que permite exponer sus objetos python en la web. Compruébelo y tiene un buen servidor web incorporado que no necesita apache/mod_wsgi, etc.,

1

Le estoy respondiendo con algunos consejos, como alguien que se encontraba en una situación muy similar a la suya Hace solo unos meses.

Así que está usando apache para alojar su sitio web. Eso es genial. Para que python juegue bien con apache, vas a querer usar mod_wsgi, por las razones que otros han establecido: la separación de preocupaciones lo hace mejor que cgi y mod_python ya no es compatible.

Sin embargo, su impresión de que renunciar a un framework lo acercará a la programación en python "puro" es un poco extraño. Compartí la misma opinión y experimenté con Django y solo con mod_wsgi. Déjame compartir lo que encontré.

Mod_wsgi es una implementación del estándar WSGI que se encuentra en PEP 333. La distinción entre la implementación y el estándar es importante. En primer lugar, porque significa que las aplicaciones compatibles con WSGI funcionarán en todas las implementaciones. Más importante aún, revela algo importante sobre lo que WSGI debe hacer. Es decir, WSGI tiene la intención de ser un estándar para escribir marcos. Desde el PEP:

simplicidad de implementación para un autor de marco no es lo mismo que la facilidad de uso para un autor de la aplicación web

y

El objetivo de WSGI es facilitan la fácil interconexión de servidores y aplicaciones existentes o marcos, no para crear un nuevo marco web.

No estoy diciendo que no deba hacer algo con wsgi, pero debe esperar escribir un framework más que una aplicación. Si está interesado en escribir un marco simple, this tutorial es donde comencé.

Sin embargo, si solo desea crear un sitio web, consulte uno de los marcos que otros han sugerido. Seguirás escribiendo el código python, pero los autores han trabajado duro para que el código que escribes esté más conectado y produzca sitios web que producir marcos. Personalmente, he usado Django, y una vez que estuvo en funcionamiento, fue bastante fácil generar aplicaciones interesantes. Además, su documentación es muy buena, y tienen un buen tutorial here. Una vez dicho esto, Django está muy bien presentado, y si estás buscando algo un poco más minimalista, he escuchado cosas buenas sobre Flask, pero también hay muchas otras opciones.

Cuestiones relacionadas