[pyar] Formularios y Urllib2 Django
Felipe Olaya
fluverk en gmail.com
Sab Jul 28 03:55:51 ART 2012
Hola!, Tengo una duda, espero poder despejarla con la ayuda de
ustedes, aun no logro entender como enviar varios parámetros a varias
urls.
Como decía si volvemos al código de arriba en PHP, que consta de dos
partes iniciar sesión y enviar el mensaje.
Nota: Ya no estoy trabajando con urllib2, ahora estoy testando la api requests.
Aqui inicia sesión perfectamente.
[HIGHLIGHT="Python"]
import requests
# login
user = 'xxx'
clave = 'xxx'
url = 'http://dominio.com/subdominio/index.php'
valores = {'app': 'page', 'inc': 'login', 'op': 'auth_login',
'username': user, 'password': clave}
r = requests.post(url, data=valores)
print r.content
[/HIGHLIGHT]
Que parte me perdi, porque no entiendo como enviar el mensaje por
post, seria algo como así:
[HIGHLIGHT="Python"]
# send mensaje
valores2 = {'app': 'menu', 'inc': 'send_sms', 'op': 'sendsmstopv'}
r2 = requests.post(url, data=valores2)
print r2.content
[/HIGHLIGHT]
Pero aparece como no ha iniciado sesión. Agradezco cualquier aporte,
la idea principal es poder enviar el mensaje correctamente, tomando
como plantilla el código PHP de arriba.
Muchas Gracias.
Saludos.
El día 27 de julio de 2012 21:23, Lucas <rollbak en gmail.com> escribió:
>
> On Jul 27, 2012 11:16 PM, "Felipe Olaya" <fluverk en gmail.com> wrote:
>>
>> Hola!, estoy tratando de pasar una pequeña aplicación que tengo en PHP
>> a Python, consta de un formulario que recibe unos valores, y se envían
>> a una API: login y send valúes.
>>
>> El Código PHP
>> //------------- datos recogidos ------------------
>> $postdata = "p_num_text=$nop&smstemplate=&message=$mensaje";
>> if($nop!="" && $mensaje!=""){
>> $ch = curl_init();
>> @fclose($O);
>> //------------- Login ------------------
>> curl_setopt($ch, CURLOPT_URL,
>> "http://dominio.com/subdominio/index.php");
>> curl_setopt($ch, CURLOPT_REFERER,
>> "http://dominio.com/subdominio/index.php");
>> curl_setopt ($ch, CURLOPT_POST, 1);
>> curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows;
>> U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203
>> Firefox/3.6.13");
>> curl_setopt ($ch, CURLOPT_POSTFIELDS,
>> "app=page&inc=login&op=auth_login&username=$username&password=$pass");
>> curl_setopt ($ch, CURLOPT_COOKIEJAR, $Cookies);
>> curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
>> $login = curl_exec ($ch);
>>
>> //----------------- Enviar mensaje -------------------
>> curl_setopt($ch, CURLOPT_URL,
>>
>> "http://dominio.com/subdominio/index.php?app=menu&inc=send_sms&op=sendtopv_yes");
>> curl_setopt($ch, CURLOPT_REFERER,
>>
>> "http://dominio.com/subdominio/index.php?app=menu&inc=send_sms&op=sendtopv");
>> curl_setopt ($ch, CURLOPT_POST, 1);
>> curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows;
>> U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203
>> Firefox/3.6.13");
>> curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
>> //curl_setopt($ch, CURLOPT_COOKIEFILE, $Cookies);
>> curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
>> $send = curl_exec ($ch);
>>
>> Puedo decir que todo se divide en primero la autenticación y segundo
>> el envío del mensaje.
>>
>> El Código Python
>> import urllib, urllib2
>>
>> user = 'xxx'
>> clave = 'xxx'
>> url = 'http://dominio.com/subdominio/index.php'
>> params = urllib.urlencode({'app': 'page', 'inc': 'login', 'op':
>> 'auth_login', 'username': user, 'password': clave})
>> urlx = urllib2.urlopen('http://slidetwo.dyndns.org/vasquez/index.php?%s'
>> % params)
>>
>> ¿Que opinan?, el detalle esta que no esta autenticando, si imprimo
>> params y copio y pego la url en un navegador me funciona.
>>
>> Muchas Gracias.
>> Saludos.
>>
>> El día 27 de julio de 2012 06:21, Santiago Basulto
>> <santiago.basulto en gmail.com> escribió:
>> > Te recomiendo Requests en vez de urllib2 >
>> > http://docs.python-requests.org/en/latest/index.html
>> >
>> > Con respecto a la documentación, el sitio de Django es el mejor lugar
>> > para consultar. De todas maneras, viendo tu caso de uso, yo no
>> > utilizaría el form para consultar la API (o para enviar el SMS).
>> > Djanto tiene un mecanismo para manejar "eventos" llamado Signals
>> > (https://docs.djangoproject.com/en/1.4/topics/signals/). Basicamente
>> > lo que haces es atar una función que se ejecuta cada vez que se guarda
>> > tu modelo. Entonces, el Form guarda el modelo y después se dispara la
>> > signal.
>> >
>> > La ventaja de esto es que en cuanto puedas podés refactorizar la
>> > signal para que se envíe de forma asincrónica.
>> >
>> > Saludos!
>> >
>> > El día 27 de julio de 2012 01:42, Felipe Olaya <fluverk en gmail.com>
>> > escribió:
>> >> Hola, Tengo problemas al crear un formulario que reciba un código país,
>> >> numero celular y por ultimo un cuerpo mensaje y enviar esta información
>> >> por
>> >> medio de urllib2 a una API.
>> >>
>> >> No tengo idea como empezar he leído mucha información pero no he
>> >> logrado
>> >> hacerlo funcionar, si alguien me puede facilitar algún tipo de
>> >> documentación
>> >> para llevar acabo esto, lo agradezco.
>> >>
>> >> La idea es crear una aplicación, que conste de un formulario sencillo
>> >> para
>> >> enviar SMS gratis.
>> >>
>> >> Muchas Gracias.
>> >> Saludos.
>> >>
>> >> _______________________________________________
>> >> pyar mailing list pyar en python.org.ar
>> >> http://listas.python.org.ar/listinfo/pyar
>> >>
>> >> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>> >>
>> >> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> >> Argentina - http://www.usla.org.ar
>> >
>> >
>> >
>> > --
>> > Santiago Basulto.-
>> > _______________________________________________
>> > pyar mailing list pyar en python.org.ar
>> > http://listas.python.org.ar/listinfo/pyar
>> >
>> > PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>> >
>> > La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> > Argentina - http://www.usla.org.ar
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>
> En el código PHP estas hacieno el request por POST y en el código python lo
> estás haciendo por GET.
>
> Esa puede ser la causa de q no te funcione.
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
More information about the pyar
mailing list