2009-05-21 28 views
17

He estado trabajando en Python, pero eso fue todo para aplicaciones independientes. Tengo curiosidad por saber si algún retoño de Python es compatible con el desarrollo web.Usando Python para desarrollar la aplicación web

¿Alguno de ellos también me sugiere un buen tutorial o un sitio web desde donde puedo recoger algunos de los conceptos básicos del desarrollo web utilizando Python?

+3

Si escucho las palabras DJango o TurboGears o lo que sea ... voy a ... hacer algo loco? –

+5

@Aiden ... entonces yo recomendaría no hablar de las aplicaciones web de Python, porque * no * hablar sobre los principales frameworks en el contexto del desarrollo web es "algo loco". –

+6

@ Aaron, el comentario fue en humor. Tengo un poco de repuesto si lo quieres. –

Respuesta

21

Ahora que todo el mundo ha dicho Django, puedo añadir mi granito de arena: Yo diría que es posible aprender más mirando a los diferentes componentes primero, antes de usar Django. Para el desarrollo web con Python, a menudo desea 3 componentes:

  1. Algo que se ocupa de las cosas HTTP (por ejemplo CherryPy)

  2. Un lenguaje de plantillas para crear sus páginas web. Mako es muy pitónico y works con Cherrpy.

  3. Si obtiene sus datos de una base de datos , un ORM es útil. SQLAlchemy es example.

Todos los enlaces de arriba tienen buenos tutoriales. Para muchos casos de uso del mundo real, Django será una mejor solución que una pila así, ya que integra sin problemas esta funcionalidad (y más). Y si necesita un CMS, Django es su mejor opción, salvo Zope. Sin embargo, para tener una buena idea de lo que está pasando, una pila de programas débilmente acoplados podría ser mejor. Django esconde muchos de los detalles.

+1

+1 SQLAlchemy es muy bueno (aunque, django + etc tiene la ventaja de elegir el idioma de Template, ORM dispatcher para que no tenga que hacerlo). –

+0

@ Aaron: totalmente, de acuerdo. Respuesta modificada para hacer más clara esta ventaja de Django – stephan

0

Búsqueda Django.

0

Python se puede utilizar para el desarrollo web, pero no hay una extensión de lenguaje especial ni nada en el lenguaje que maneje toda la generación de HTML o que funcione como PHP.

Se ejecuta prácticamente a través de algún tipo de intérprete en un servidor web (CGI, mod_python, etc.).

Recomendaría mirar en Python Web Application Frameworks o cómo escribir Python CGI scripts.

0

Existen quite a few frameworks web para python, pero el único que he usado es Django, y realmente me gusta.

Si tienes unas cuantas horas, haga lo tutorial, te lo prometo, que lo disfrutéis :)

4

Editado 3 años más tarde: No utilizar mod_python, el uso mod_wsgi. Flask y Werkzeug son buenos marcos también. Necesitar saber qué está pasando es útil, pero no es un requisito. Eso sería estúpido

No busque Django hasta que tenga una buena idea de lo que Django está haciendo en su nombre. para ti. Escribe algunas aplicaciones básicas usando mod_python y su objeto de solicitud. Acabo de empezar a aprender Python para desarrollo web usando mod_python y ha sido genial.

mod_python también utiliza un despachador en site-packages/mod_python/publisher.py. Eche un vistazo a esto para ver cómo se pueden manejar las solicitudes de una manera sencilla.

Puede necesitar agregar un poco de configuración a su archivo de configuración de Apache para poner en marcha el mod_python pero el sitio de mod_python lo explica bien.

<Directory /path/to/python/files> 
    AddHandler mod_python .py 
    PythonHandler mod_python.publisher 
    PythonDebug On 
</Directory> 

¡Y usted está lejos!

uso (como un ejemplo estúpidamente básico):

def foo(req): 
    req.write("Hello World") 

en /path/to/python/files/bar.py asumiendo /path/to es la raíz del sitio.

Y entonces usted puede hacer

http://www.mysite.com/python/files/bar/foo 

a ver "Hello World".También, algo que me hizo tropezar es el distribuidor utiliza un método cojo a trabajar a cabo el tipo de contenido, por lo que para forzar el uso de HTML:

req.content_type = 'text/html' 

buena suerte

Después de tener una buena idea de cómo Python interactúa con mod_python y Apache, luego utiliza un marco que hace todo lo aburrido para ti. Depende de usted, solo mi recomendación

+0

Si insistes en sugerir que las personas hagan lo propio, al menos deberías sugerir que usen WSGI y no mod_python. WSGI es el estándar para escribir aplicaciones web de python y no lo conecta con la API de un servidor web específico (tan común como ese servidor web). Además, a medida que descubres parte del dolor de escribir una aplicación web desde cero, WSGI deja la puerta abierta para reutilizar otros componentes de WSGI. –

+3

Dado que el OP se usa para el desarrollo independiente en Python, y solicitó "principios básicos de desarrollo web usando Python", este parecía el lugar apropiado para comenzar, habiendo comenzado de esta manera yo mismo y me pareció una gran base para construir. –

0

Como han mencionado otros, uno de los "vástagos" de pitón más prominentes como usted los llama sería Django. Es un marco bastante poderoso que le permite crear aplicaciones web de manera rápida y segura. El primer lugar para buscar sería their overview, lo que da una idea de lo que hace Django como marco.

Pasando por their tutorial me enseñó mucho sobre el patrón de diseño modelo-vista-controlador prominente y cómo se puede utilizar en un contexto de desarrollo web. Encontré una gran manera de comenzar a escribir una aplicación que funcionó y aprendí mejorándola.

3

Si realmente no quieres profundizar en los marcos, y deberías, recomiendo encarecidamente Django o Pilones, todavía hay que seguir el camino de CGI. Esta es una tecnología totalmente desactualizada, por no mencionar lenta e ineficiente.

Hay es una forma estándar de crear aplicaciones web de Python, y se llama WSGI. Si desea rodar su propia aplicación web desde cero, este es absolutamente el camino a seguir.

Dicho esto, si recién está comenzando, realmente debería ir con uno de los marcos.

1

Hay un par de opciones para el desarrollo web. Según mi experiencia, su elección volverá a depender de su aplicación.Usé django y web.py en producción y estoy a punto de implementar una aplicación basada en pylons.

Django esconde muchas opciones (viene con su ORM y plantilla). La documentación es extensa y está bien escrita. Hay muchas aplicaciones reutilizables disponibles para django, pero es probable que inviertas un poco de tiempo en integrarlas sin problemas. Una cosa, mentioned on djangocon 08, fue el hecho de que hay cosas geniales en django, que no se pueden acceder fácilmente a en proyectos que no son django.

web.py me impresionó por su simple simplicidad. Antes de darme cuenta, escribí una pequeña aplicación (78 lines quasi-wiki) en ella.

pylons se siente como en el medio de ambos. Puedo usar sqlalchemy y jinja, en general, una experiencia agradable para el comienzo.

Cuestiones relacionadas