tutorial tablas read panda hacer funciones español curso crear con python json rest salesforce raspberry-pi

python - tablas - ¿Cómo aceptar un JSON POST?



read text pandas python (2)

En primer lugar, no use un script de Python que imprima el resultado directamente en CGI. Estarás depurándolo para siempre.

Use una estructura ligera como Flask. Puedes hacer algo tan simple como

from flask import Flask application = Flask(__name__) @application.route(''/'', methods=[''GET'', ''POST'']) def index(): if request.method == ''POST'': # use Flask''s build in json decoder the_data = request.get_json() # then do something with the data return "This was a POST request, how interesting..." else: # request was GET rather than POST, so do something with else return "Hello World!"

Vea cómo configurar Flask para ejecutar con Lighttpd aquí http://flask.pocoo.org/docs/deploying/fastcgi/

Si desea probar esto, puede escribir otro script de Python para enviar datos JSON a su servidor (recomiendo consultar la biblioteca de solicitudes de Python para este http://www.python-requests.org/en/latest/ ), o puede hacerlo manualmente usando un generador de solicitudes HTTP, como HTTPRequester for Firefox ( https://addons.mozilla.org/en-US/firefox/addon/httprequester/ )

La primera vez aquí, dice que es específico ... Así que aquí va.

Estoy haciendo un pequeño proyecto para conectar Salesforce a mi Raspberry Pi. El objetivo es hacer que una luz (Think a beacon, light similar a una sirena) destelle cuando llega un caso de alta prioridad de un cliente en Salesforce. Por el momento, los clientes suelen enviar un correo electrónico a una determinada dirección, y esto crea un caso. Va a la "Cola no asignada" y envía un correo electrónico al equipo informándole que este caso está esperando ser asignado.

Salesforce usa REST, por lo que necesito que el Pi acepte JSON para que pueda entender fácilmente lo que Salesforce desea que haga.

Actualmente, creo que he ganado la mitad de la batalla. Tengo un servidor web (Lighttpd) ejecutándose en el Pi, que aloja una página de índice y un script de Python. También estoy usando un contenedor Python, que me permite ejecutar fácilmente un comando desde un programa Telldus que he instalado. Este programa controla un transmisor de RF USB que he conectado, está emparejado con un zócalo de RF, que está conectado a la fuente de alimentación con una luz conectada.

Por lo tanto, la secuencia de comandos de Python se llama power.py y se puede controlar con variables de URL, por lo que si voy a power.py?device=1&power=on&time=10&password=hunter2 eso enciende el dispositivo 1 durante 10 segundos. También creé un formulario POST en la página de índice, que simplemente POSTS a la secuencia de comandos python, y lo ejecuta de la misma manera que el uso de las variables de URL. Eso funciona bien.

Entonces, todo lo que necesito hacer es conectarlo a Salesforce. Me gustaría usar REST y JSON, de modo que si alguna vez me alejo de Salesforce a otro programa de CRM, será capaz de adaptar y recibir instrucciones de lugares nuevos.

Publiqué el script de Python que estoy usando aquí: https://github.com/7ewis/RemotePiControl/blob/master/power.py

Actualmente, el Pi no está permitido salir de la red local, así que tendré que desarrollar de alguna manera una forma de enviar comandos JSON, y recibirlos y convertirlos para trabajar usando las variables correctas, etc. No soy un programador, lo '' solo estoy expuesto a los lenguajes por piratear cosas y explorar. De ahí que necesito una guía con esto.

Nunca antes había usado REST o JSON, así que ¿qué tendría que hacer para lograr esto?


Parece que agregar Flask http://flask.pocoo.org a su servidor web Raspberry Pi sería una buena jugada. Permite que python del lado del servidor se ejecute en respuesta a solicitudes JQuery ajax (y regulares). Vea un par de ejemplos aquí:

http://flask.pocoo.org/docs/patterns/jquery/

y esta pregunta de desbordamiento de pila: ¿cómo puedo usar los datos publicados desde ajax en el matraz?

Flask es bastante sencillo de poner en funcionamiento, y está contento de trabajar con varios servidores, incluido Lighttpd. Escribir el matraz RESTful también es una propuesta perfectamente razonable, ver: http://blog.miguelgrinberg.com/post/designing-a-restful-api-with-python-and-flask

Además, muchas personas ya han usado el matraz en la frambuesa pi, por lo que podría ayudarte a tenerlo funcionando sin problemas: http://mattrichardson.com/Raspberry-Pi-Flask/

¡Buena suerte!