controller.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. # -*- coding: utf-8 -*-
  2. from random import randint
  3. from functools import partial
  4. import json as jsonOut
  5. from gluon import current
  6. from database import Dal, RawDal, num_queries
  7. def plaintext():
  8. current.response.headers['Content-Type'] = 'text/plain'
  9. return 'Hello, World!'
  10. def json():
  11. current.response.headers['Content-Type'] = 'application/json'
  12. return jsonOut.dumps({'message': 'Hello, World!'})
  13. def db():
  14. current.response.headers['Content-Type']='application/json'
  15. return jsonOut.dumps(Dal('World').get_world(randint(1, 10000)))
  16. def queries():
  17. current.response.headers['Content-Type']='application/json'
  18. db = RawDal() if current.optimized else Dal('World')
  19. get_world = db.get_world
  20. r10k = partial(randint, 1, 10000)
  21. worlds = [get_world(r10k()) for _ in
  22. xrange(num_queries(current.request.vars.queries))]
  23. return jsonOut.dumps(worlds)
  24. def updates():
  25. current.response.headers['Content-Type']='application/json'
  26. db = RawDal() if current.optimized else Dal('World')
  27. get_world = db.get_world
  28. update_world = db.update_world
  29. r10k = partial(randint, 1, 10000)
  30. worlds = []
  31. for wid in (r10k() for _ in xrange(num_queries(current.request.vars.queries))):
  32. world = get_world(wid)
  33. newNumber = r10k()
  34. world['randomNumber'] = newNumber
  35. worlds.append(world)
  36. update_world(wid, newNumber)
  37. return jsonOut.dumps(worlds)
  38. def fortune():
  39. new_message = {'id': 0, 'message': 'Additional fortune added at request time.'}
  40. db = RawDal() if current.optimized else Dal('Fortune')
  41. fortunes = db.get_fortunes(new_message=new_message)
  42. return current.response.render('fortune.html', fortunes=fortunes)