In tornado,
- tornado.web.RequestHandler maps URLs to subclasses and
- tornado.web.Application class starts a server at the beginning with certain settings
For instance, in the example below:
- When a HTTP GET request is made to http://127.0.0.1:8888/, class Hello handles it & requests made to http://127.0.0.1:8888/user are catered by class User
- A web formĀ is rendered to the user when the client browses (Http Get) to /user
- When the client fills in the form and clicks on ‘Submit Query’, a HTTP POST request is generated on /user URL
- This request is then served by the post() method of handler class ‘User’ and the message with username and designation is rendered on the browser
Code
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import tornado.ioloop | |
import tornado.web | |
class Hello(tornado.web.RequestHandler): | |
def get(self): | |
self.write("Hello, world") | |
class User(tornado.web.RequestHandler): | |
def get(self): | |
form = """<form method="post"> | |
<input type="text" name="username"/> | |
<input type="text" name="designation"/> | |
<input type="submit"/> | |
</form>""" | |
self.write(form) | |
def post(self): | |
username = self.get_argument('username') | |
designation = self.get_argument('designation') | |
self.write("Wow " + username + " you're a " + designation) | |
application = tornado.web.Application([ | |
(r"/", Hello), | |
(r"/user/", User), | |
]) | |
if __name__ == "__main__": | |
application.listen(8888) | |
tornado.ioloop.IOLoop.instance().start() |
Form presented to the client
Response from web server
good one and easy to understand thnx