Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import web
- import json
- from mimerender import mimerender
- render_xml = lambda message: '<message>%s</message>'%message
- render_json = lambda **args: json.dumps(args)
- render_html = lambda message: '<html><body>%s</body></html>'%message
- render_txt = lambda message: message
- urls = (
- '/(.*)', 'greet'
- )
- app = web.application(urls, globals())
- class greet:
- @mimerender(
- default = 'html',
- html = render_html,
- xml = render_xml,
- json = render_json,
- txt = render_txt
- )
- def GET(self, name):
- if not name:
- name = 'world'
- return {'message': 'Hello, ' + name + '!'}
- if __name__ == "__main__":
- app.run()
- $ curl localhost:8080/x
- <html><body>Hello, x!</body></html>
- $ curl -H "Accept: application/html" localhost:8080/x
- <html><body>Hello, x!</body></html>
- $ curl -H "Accept: application/xml" localhost:8080/x
- <message>Hello, x!</message>
- $ curl -H "Accept: application/json" localhost:8080/x
- {'message':'Hello, x!'}
- $ curl -H "Accept: text/plain" localhost:8080/x
- Hello, x!
- def someUsefulThing( request, object_id ):
- # do some processing
- return { a dictionary with results }
- def htmlView( request, object_id ):
- d = someUsefulThing( request, object_id )
- render_to_response( 'template.html', d, ... )
- def jsonView( request, object_id ):
- d = someUsefulThing( request, object_id )
- data = serializers.serialize( 'json', d['object'], fields=EXPOSED_FIELDS )
- response = HttpResponse( data, status=200, content_type='application/json' )
- response['Location']= reverse( 'some.path.to.this.view', kwargs={...} )
- return response
- import cherrypy
- from cherrypy import expose
- class Converter:
- @expose
- def index(self):
- return "Hello World!"
- @expose
- def fahr_to_celc(self, degrees):
- temp = (float(degrees) - 32) * 5 / 9
- return "%.01f" % temp
- @expose
- def celc_to_fahr(self, degrees):
- temp = float(degrees) * 9 / 5 + 32
- return "%.01f" % temp
- cherrypy.quickstart(Converter())
Add Comment
Please, Sign In to add comment