Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Python (https://www.clubdelphi.com/foros/forumdisplay.php?f=46)
-   -   Aprendiendo a programar HTTP con python, superfacil (https://www.clubdelphi.com/foros/showthread.php?t=79318)

mamcx 25-06-2012 22:12:20

Aprendiendo a programar HTTP con python, superfacil
 
Constantemente en este foro y otros se ven preguntas relacionadas con apps/sitios web (ya sea php, delphi, .net) que evidencian en el fondo un problema: Realmente no se entiende que es http, html y similares.

La cosa es que frameworks como asp.net, intraweb, django estan muy arriba en la abstraccion, y cosas como php y, cgi y similares muy abajo.

Una *excelente* forma de entender todo este asunto, es usar un *micro* framework.

Uno en python que es supersimple, superfacil de instalar (es solo 1 archivo), se aprende -literalmente- en 1 dia y que provee un buen fundamento para entender todo el asunto es:

http://bottlepy.org/

Esto es un ejemplo, de un servidor web + pagina, corriendo en localhost:8080

Código PHP:

from bottle import routerun

@route('/hello/:name')
def index(name='World'):
    return 
'<b>Hello %s!</b>' name

run
(host='localhost'port=8080

Esto es mas completo, mostrar un pagina de login:

Código PHP:

from bottle import getpostrequest

@get('/login'# or @route('/login')
def login_form():
    return 
'''<form method="POST">
                <input name="name"     type="text" />
                <input name="password" type="password" />
              </form>'''

@post('/login'# or @route('/login', method='POST')
def login_submit():
    
name     request.forms.get('name')
    
password request.forms.get('password')
    if 
check_login(namepassword):
        return 
"<p>Your login was correct</p>"
    
else:
        return 
"<p>Login failed</p>" 

Lo bueno de este ejemplo es que los decoradores @get / @post hacen EXPLICITO que estamos trabajando con los verbos HTTP GET/POST

El tutorial:

http://bottlepy.org/docs/dev/tutorial.html

Muestra los aspectos elementales de combinar HTTP/HTML:

- Uso de los headers
- Descarga de archivos
- Uso de cookies de forma manual
- Cambiar el formato de respuesta (ej: de html a xml)
- Uso de plantillas (para algo mucho mejor y mas potente: http://jinja.pocoo.org)

Y muestra como hacer una pagina de tareas:

http://bottlepy.org/docs/dev/tutorial_app.html

y como hacer una pagina en tiempo real (ie: chat):

http://bottlepy.org/docs/dev/async.html

Mientras un framework como https://www.djangoproject.com/ es algo mucho mas completo, he aprendido que no entender el desarrollo web a un nivel mas elemental se convierte en un problema.

Espero les guste.

P.D: Otras opciones:

http://flask.pocoo.org/

http://webpy.org/

marcoszorrilla 25-06-2012 22:29:07

Excelente todo.

Gracias Mario.

Casimiro Notevi 25-06-2012 22:35:48

Vaya, yo todavía sigo muy perdido en estas cosas, a ver si ahora puedo dedicarle un poco más :)


La franja horaria es GMT +2. Ahora son las 00:23:40.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi