wo ist mein Code-Fehler auf Google App Engine urlfetch
-
28-09-2019 - |
Frage
Das ist mein Code:
class save(BaseRequestHandler):
def get(self):
counter = Counter.get_by_key_name('aa-s')
counter.count += 1
url = "http://www.google.com"
result = urlfetch.fetch(url)
if result.status_code == 200:
counter.ajax = result.content
counter.put()
self.redirect('/')
und der Fehler ist:
Traceback (most recent call last):
File "D:\Program Files\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 511, in __call__
handler.get(*groups)
File "F:\ss\Task Queue\main.py", line 48, in get
counter.ajax = result.content
File "D:\Program Files\Google\google_appengine\google\appengine\ext\db\__init__.py", line 542, in __set__
value = self.validate(value)
File "D:\Program Files\Google\google_appengine\google\appengine\ext\db\__init__.py", line 2453, in validate
raise BadValueError('Property %s is not multi-line' % self.name)
BadValueError: Property ajax is not multi-line
INFO 2010-11-04 08:24:29,905 dev_appserver.py:3283] "GET /save HTTP/1.1" 500 -
, so dass ich den Fehler nicht finden kann,
Sie haben.
Dank
Lösung
Sie versuchen, das Ergebnis in counter.ajax zu speichern, die ein String ist, die nicht mehrzeiligen hat = True. Entweder gesetzt mehrzeilige in der Definition von ‚ajax‘ True = oder ersetzen sie durch eine Textproperty (). Letzteres ist mit ziemlicher Sicherheit die richtige Antwort -. TextProperties länger sein kann, und wird nicht indiziert
Andere Tipps
Der Fehler ist in Ihrem Counter Modell.
„Ajax“ Bedürfnisse ein mehrzeiliges String-Eigenschaft sein. Sehen Sie die Typen und Objektklassen Dokumentation .
Sie werden tun:
ajax = db.StringProperty(multiline=True)
Beachten Sie, dass db.StringProperty nur für Streicher von 500 Zeichen oder weniger verwendet werden.