Ich habe vor kurzem Webpy auf meinem Ubuntu-Rechner heruntergeladen, und ich habe derzeit Probleme mit seiner POST-Funktion. Hier ist mein Code:Webpy AttributeError 'Header-Schlüssel'
#! /usr/bin/env python
import web,interface
urls = (
'/', 'index'
)
class index(object):
def POST(self):
data = web.input()
interface.interfaceModule(data.decider)
return "SENT TO INTERFACE"
if __name__ == "__main__":
app = web.application(urls, globals())
app.run()
Schnittstelle ist nur eine andere Klasse, die die POST-Wert erhält, und sendet sie an einem Arduino über serielle. Hier
ist der Fehlerausgang:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/web/application.py", line 239, in process
return self.handle()
File "/usr/local/lib/python2.7/dist-packages/web/application.py", line 230, in handle
return self._delegate(fn, self.fvars, args)
File "/usr/local/lib/python2.7/dist-packages/web/application.py", line 462, in _delegate
return handle_class(cls)
File "/usr/local/lib/python2.7/dist-packages/web/application.py", line 438, in handle_class
return tocall(*args)
File "/var/www/cgi-bin/index.py", line 12, in POST
interface.interfaceModule(data.decider)
File "/usr/local/lib/python2.7/dist-packages/web/utils.py", line 76, in _ _getattr__
raise AttributeError, k
AttributeError: 'decider'
192.168.10.1:52225 - - [09/Dec/2016 19:41:09] "HTTP/1.1 POST /" - 500 Internal Server Error
I die Post-Anforderung über das Chromium app gesendet: Post-MAN, mit dem angegebenen Schlüssel und einen beliebigen Wert.
Sie 'data.decider' aber es scheint' data' nicht über Eigentum 'decider'. Benutze 'print (data, type (data), dir (data))', um zu sehen, was du in 'data' hast – furas
@furus Ich habe versucht, den Objektwert vorher auszudrucken und ja, es ist leer:" ", wie für Geben Sie Folgendes ein: , und das Verzeichnis() zeigt kein Entscheiderattribut. Wie gehe ich vor, um das zu beheben? –
bedeutet, dass Sie falsche Daten senden - Sie senden keine Werte. – furas