I ran throught he GAE tutorial and successfully got a test app to load so I at least know my GAE project site is working. However, when I use the python scripts posted on the web instructions and upload them to GAE, I get a server error message when I attempt to access the project space (http://1532barton.appspot.com). Needless to say I am a novice to both python and GAE so any help would be greatly appreicated. Note I also tried the R5 release in cvs tree and had similar problems.
Here's the code I am using (from your web step-by-step guide):
import cgi, datetime
from google.appengine.api import users
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext import db
class Powerusage(db.Model):
author = db.UserProperty() # the user
sensornum = db.IntegerProperty() # can have multiple sensors
watt = db.FloatProperty() # each sending us latest Watt measurement
date = db.DateTimeProperty(auto_now_add=True) # timestamp
#
# end of section 1
#
class PowerUpdate(webapp.RequestHandler):
def get(self):
# make the user log in
if not users.get_current_user():
self.redirect(users.create_login_url(self.request.uri))
powerusage = Powerusage()
if users.get_current_user():
powerusage.author = users.get_current_user()
#print self.request
if self.request.get('watt'):
powerusage.watt = float(self.request.get('watt'))
else:
self.response.out.write('Couldnt find \'watt\' GET property!')
return
if self.request.get('sensornum'):
powerusage.sensornum = int(self.request.get('sensornum'))
else:
powerusage.sensornum = 0 # assume theres just one or something
powerusage.put()
self.response.out.write('OK!')
#
# end of section 2
#
class DumpData(webapp.RequestHandler):
def get(self):
# make the user log in
if not users.get_current_user():
self.redirect(users.create_login_url(self.request.uri))
self.response.out.write('<html><body>Here is all the data you have sent us:<p>')
powerusages = db.GqlQuery("SELECT * FROM Powerusage WHERE author = :1 ORDER BY date", users.get_current_user())
for powerused in powerusages:
if powerused.sensornum:
self.response.out.write('<b>%s</b>\'s sensor #%d' %
(powerused.author.nickname(), powerused.sensornum))
else:
self.response.out.write(<b>%s</b>' % powerused.author.nickname())
self.response.out.write(' used: %f Watts at %s<p>' % (powerused.watt, powerused.date))
self.response.out.write("</body></html>")
#
# end of section 3
#
class MainPage(webapp.RequestHandler):
def get(self):
self.response.out.write('<html><body>Welcome to Wattcher!<p>Here are the last 10 datapoints:<p>')
powerusages = db.GqlQuery("SELECT * FROM Powerusage ORDER BY date DESC LIMIT 10")
for powerused in powerusages:
if powerused.sensornum:
self.response.out.write('<b>%s</b>\'s sensor #%d' %
(powerused.author.nickname(), powerused.sensornum))
else:
self.response.out.write('<b>%s</b>' % powerused.author.nickname())
self.response.out.write(' used: %f Watts at %s<p>' % (powerused.watt, powerused.date))
self.response.out.write("</body></html>")
#
# end of section 4
#
application = webapp.WSGIApplication(
[('/', MainPage),
('/report', PowerUpdate),
('/dump', DumpData)],
debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
#
# end of section 5
#

