Saturday, January 29, 2011

How to get data from Google App Engine for python with jQuery

GAE side:
import simplejson
...
class HistoryHandler(webapp.RequestHandler):
def get(self):
viewerid = self.request.get('viewerid')
query = "SELECT * FROM dbmodel where viewerid = '" + viewerid + "'"
datas = db.GqlQuery(query)
result = []
for data in datas:
r = {}
r["key"] = data.key().id()
r["unreadflag"] = data.unreadflag
result.append(r)
self.response.out.write(simplejson.dumps(result))
jQuery side:
    $.get('http://xxxxxxxx.appspot.com/historydata signed', {viewerid : viewerid}, function(results) {
      if(results.length == 0){
      ...
      }
      else{
              //when results is an object, this "i" is a hash key.
              //when results is an array, this "i" is an index.
     $.each(results, function(i, r) {
     alert(r.unreadflag);
     });
      }
    }, 'json');
P.S.
My English is not good enough.
If there is a mistake and an anxious point,teach me softly.

How to post data to Google App Engine for python with jQuery

jQuery side:
$.post(
"http://xxxxxxxxxxxxxxxxx.appspot.com/introdata",
{"viewerid": viewerid, "fromid": from, "toid": to, "introreason": reason},
function(data, status) {
$("#oktext").css('font-size', '12px').css("font-weight", "bold").css("color", "red").fadeIn(2000);
$("#oktext").fadeOut(5000);
}
);
GAE side:

from django.utils import simplejson
...

class AddHandler(webapp.RequestHandler):
       ...
def post(self):
viewerid = self.request.get('viewerid')
data = introData(viewerid=viewerid)
data.fromid = self.request.get('fromid')
data.toid = self.request.get('toid')
data.introreason = self.request.get('introreason')
data.unreadflag = '1'
data.put()
...
def main():
application = webapp.WSGIApplication(
[
('/introdata',AddHandler),
...
],
debug=True)
wsgiref.handlers.CGIHandler().run(application)

if __name__ == '__main__':
main()