Desarrollo web con python sin frameworks

Francisco Palm francisco.palm en gmail.com
Dom Jul 27 22:43:27 CEST 2008


No tienes que pedir disculpas... Lo cierto es que hiciste algunas
preguntas puntuales que no respondí ( me vengo a dar cuenta ahora).

La forma más "básica" de conectarse con una aplicación web podría
decirse que es el modo CGI, usar mod-python ya implica que vas a tener
un gestor de los procesos de Python corriendo en Apache. Ahora mismo
usar mod-wsgi es mejor opción que usar mod-python, pero si usas
-lo.mas.basico.com- pues no sé si sea lo que quieres.

La aplicación web más sencilla de python la puedes hacer más o menos
de la siguiente manera:

Preparas una forma que quieres procesar en html:
<html>
<body>
<form method="GET" action="/cgi-bin/ImprimirEnvioForma.cgi">

<p>Esta es una forma HTML muy simple.</p>
<p><input type="text" name="textField" value="Algo de texto" /></p>

<p>Selecciona uno:<br />
<input type="radio" name="radioButton" value="1" /> 1<br />
<input type="radio" name="radioButton" value="2" checked="checked" /> 2<br />
<input type="radio" name="radioButton" value="3" /> 3<br /></p>

<p><input type="Submit" name="submit" /></p>

</form>
</html>

Cómo ves en la carpeta cgi-bin relativa a la raíz del servidor web
debe haber un archivo que procese la forma, algo como:
#!/usr/bin/python
import cgi
import cgitb
cgitb.enable()

form = cgi.FieldStorage()
textField = form.getfirst("textField")
radioButton = form.getfirst("radioButton")
submitButton = form.getfirst("submit")

print 'Content-type: text/html\n'
print '<html>'
print '<body>'
print '<p>Aquí están los valores que envío en la forma:</p>'
print '<ul>'
print '<li>En el campo de texto introdujo: "%s".</li>' % textField
print '<li>Entre los radio buttons, seleccionó: "%s".' % radioButton
print '<li>El nombre del botón de envío era: "%s".' % submitButton
print '</ul>'
print '</body>'
print '</html>'

Y para probarlo, ejecutas el siguiente script python que levanta un
servidor web local en el puerto 8000 con soporte CGI:
from BaseHTTPServer import HTTPServer
from CGIHTTPServer import CGIHTTPRequestHandler
HTTPServer(('localhost', 8000), CGIHTTPRequestHandler).serve_forever()

Eso es todo amigos!

Saludos

F. Palm

2008/7/28 Félix Ortega <x.ortega en gmail.com>:
> Pido perdón si no se entendió bien mi pregunta.
>
> Básicamente lo que pretendo hacer es por ejemplo, escribir el html de un
> formulario de "loggeo" y pasarle los datos a un módulo python que será quién
> verdaderamente compruebe el usuario y password para crear la sesión de dicho
> usuario.
>
> No sé si lo he explicado bien ahora con el ejemplo.
>
> Pido disculpas de nuevo.
>
> Saludos.
>
> El 25 de julio de 2008 22:23, Francisco Palm<francisco.palm en gmail.com>
> escribió:
>
>> Amigo, lo primero que debes hacer si quieres obtener respuestas es
>> aprender a hacer preguntas y dar -toda- la información necesaria para
>> entender esta pregunta.
>>
>> Hay muchos recursos donde explican como desarrollar web en Python sin
>> frameworks, por ejemplo usando CGI:
>> http://www.awaretek.com/tutorials.html#cgi
>>
>> El tema es que la experiencia en el desarrollo de aplicaciones web ha
>> mostrado que es importante estructurar las ideas y esas estructuras
>> reflejarlas en el código. De allí nacen los frameworks. Es cómo que
>> llegaras a un foro de atletismo y dijeras "porque me hablan de adidas,
>> nike, new balance y asics, esos son muchos nombres, yo lo que quiero
>> son zapatos normales, y a mi me gusta correr con zapatos de suela y
>> tacón". Los atletas se sentirán un poco extrañados de tener que
>> explicarte que los zapatos normales de andar por casa no son buenos
>> para correr, si quiere correr con cierto nivel de profesionalismo y si
>> los vas a hacer de forma continua.
>>
>> Saludos
>>
>> F. Palm
>>
>> 2008/7/26 Félix Ortega <x.ortega en gmail.com>:
>> > Hola, en primer lugar presentarme, llevo tiempo leyendo la lista y hasta
>> > ahora no me había decidido a preguntar.
>> >
>> > Quería consultaros acerca de la programación web con python.
>> >
>> > Tengo un poco de lío con tanto nombre, Django, Zope, TurboGears, etc...
>> > y por ello os quería pedir si existe algún doc que se centre en la
>> > programación web con python pero sin frameworks. ¿Es mod_python la forma
>> más
>> > básica de hacerlo?
>> >
>> > Acabo de empezar y me lío un poco con las llamadas a funciones dentro de
>> > archivos .py desde formularios html, por ejemplo
>> > action="login.py/conectar"...
>> >
>> > Vaya por delante mi agradecimiento por vuestra paciencia.
>> >
>> > Saludos!
>> > _______________________________________________
>> > Lista de correo Python-es
>> > http://listas.aditel.org/listinfo/python-es
>> > FAQ: http://listas.aditel.org/faqpyes
>> >
>>
>>
>>
>> --
>> --------------------------------------
>> fpalm en ula.ve
>> francisco.palm en gmail.com
>>
>> cel: 0414 5109177
>> tel: 0274 6352001
>>
>> ----
>> Yo creo que todavía no es demasiado tarde para construir una utopía
>> que nos permita compartir la tierra. Gabriel García Márquez.
>> _______________________________________________
>> Lista de correo Python-es
>> http://listas.aditel.org/listinfo/python-es
>> FAQ: http://listas.aditel.org/faqpyes
>>
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>



-- 
--------------------------------------
fpalm en ula.ve
francisco.palm en gmail.com

cel: 0414 5109177
tel: 0274 6352001

----
Yo creo que todavía no es demasiado tarde para construir una utopía
que nos permita compartir la tierra. Gabriel García Márquez.
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es