Guest User

Untitled

a guest
Jun 24th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. import web
  2. import json
  3. from mimerender import mimerender
  4.  
  5. render_xml = lambda message: '<message>%s</message>'%message
  6. render_json = lambda **args: json.dumps(args)
  7. render_html = lambda message: '<html><body>%s</body></html>'%message
  8. render_txt = lambda message: message
  9.  
  10. urls = (
  11. '/(.*)', 'greet'
  12. )
  13. app = web.application(urls, globals())
  14.  
  15. class greet:
  16. @mimerender(
  17. default = 'html',
  18. html = render_html,
  19. xml = render_xml,
  20. json = render_json,
  21. txt = render_txt
  22. )
  23. def GET(self, name):
  24. if not name:
  25. name = 'world'
  26. return {'message': 'Hello, ' + name + '!'}
  27.  
  28. if __name__ == "__main__":
  29. app.run()
  30.  
  31. $ curl localhost:8080/x
  32. <html><body>Hello, x!</body></html>
  33.  
  34. $ curl -H "Accept: application/html" localhost:8080/x
  35. <html><body>Hello, x!</body></html>
  36.  
  37. $ curl -H "Accept: application/xml" localhost:8080/x
  38. <message>Hello, x!</message>
  39.  
  40. $ curl -H "Accept: application/json" localhost:8080/x
  41. {'message':'Hello, x!'}
  42.  
  43. $ curl -H "Accept: text/plain" localhost:8080/x
  44. Hello, x!
  45.  
  46. def someUsefulThing( request, object_id ):
  47. # do some processing
  48. return { a dictionary with results }
  49.  
  50. def htmlView( request, object_id ):
  51. d = someUsefulThing( request, object_id )
  52. render_to_response( 'template.html', d, ... )
  53.  
  54. def jsonView( request, object_id ):
  55. d = someUsefulThing( request, object_id )
  56. data = serializers.serialize( 'json', d['object'], fields=EXPOSED_FIELDS )
  57. response = HttpResponse( data, status=200, content_type='application/json' )
  58. response['Location']= reverse( 'some.path.to.this.view', kwargs={...} )
  59. return response
  60.  
  61. import cherrypy
  62. from cherrypy import expose
  63.  
  64. class Converter:
  65. @expose
  66. def index(self):
  67. return "Hello World!"
  68.  
  69. @expose
  70. def fahr_to_celc(self, degrees):
  71. temp = (float(degrees) - 32) * 5 / 9
  72. return "%.01f" % temp
  73.  
  74. @expose
  75. def celc_to_fahr(self, degrees):
  76. temp = float(degrees) * 9 / 5 + 32
  77. return "%.01f" % temp
  78.  
  79. cherrypy.quickstart(Converter())
Add Comment
Please, Sign In to add comment