Python-Flask post und json-Objekten zurück

Entschuldigung, wenn dies scheint rudimental, wie ich bin neu in Python. Die Aufgabe, die ich versuche zu vervollständigen, ist das senden einer json-Objekt aus einer iPhone-app ein python-Skript, dass ein Prozess ein Streifen-Zahlung. Das problem was ich habe ist, ich kann nicht herausfinden, wie man Python zu erkennen, das eingehende json-Objekt zum extrahieren von Daten aus es und pass auf Streifen.

Habe ich ein Schritt zurück, zu vereinfachen das problem. Ich habe ein python-script, dass der Versuch der post ein json-Objekt mit vier Wert-Paare, um eine andere Funktion, sollten extrahieren der Werte, erstellen Sie eine neue json-Objekts und Rückgabe-Objekt. Ich kann es nicht, zu arbeiten und jede Hilfe wäre sehr geschätzt, wie ich bin stecken geblieben auf diese für eine Weile. Ich bin mit Kolben:

`
import json
import stripe
import smtplib
import requests

from flask import Flask, request, jsonify

@application.route('/run_post')
def run_post():
    url = 'http://xxx.pythonanywhere.com/stripetest'
    data = {'stripeAmount': '199', 'stripeCurrency': 'USD', 'stripeToken': '122', 'stripeDescription': 'Test post'}
    headers = {'Content-Type' : 'application/json'}

    r = requests.post(url, data, headers=headers)

    #return json.dumps(r.json(), indent=4)
    return r.text

@application.route('/stripetest', methods=["POST"])
def stripeTest():

    if request.method == "POST":

        json_dict = json.loads(request.body.raw)

        stripeAmount = json_dict['stripeAmount']
        stripeCurrency = json_dict['stripeCurrency']
        stripeToken = json_dict['stripeToken']
        stripeDescription = json_dict['stripeDescription']

        data = "{'stripeAmountRet': " +  stripeAmount + ", 'stripeCurrencyRet': " + stripeCurrency + ", 'stripeTokenRet': " + stripeToken + ", 'stripeDescriptionRet': " + stripeDescription + "}"

        return jsonify(data)
    else:

        return """<html><body>
        Something went horribly wrong
        </body></html>"""

`

Bekomme ich die folgende kehrte in die error-log wenn ich dies ausführen:

`

2015-03-19 21:07:47,148 :Starting new HTTP connection (1): xxx.pythonanywhere.com
    2015-03-19 21:07:47,151 :Exception on /stripetest [POST]
    Traceback (most recent call last):
      File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1687, in wsgi_app
        response = self.full_dispatch_request()
      File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1360, in full_dispatch_request
        rv = self.handle_user_exception(e)
      File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1358, in full_dispatch_request
        rv = self.dispatch_request()
      File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1344, in dispatch_request
        return self.view_functions[rule.endpoint](**req.view_args)
      File "/var/www/xxx_pythonanywhere_com_wsgi.py", line 156, in stripeTest
        json_dict = json.loads(request.body.raw)
      File "/usr/local/lib/python2.7/dist-packages/werkzeug/local.py", line 336, in __getattr__
        return getattr(self._get_current_object(), name)
    AttributeError: 'Request' object has no attribute 'body'

`

InformationsquelleAutor dickiebow | 2015-03-19

Schreibe einen Kommentar