Skip to content

Instantly share code, notes, and snippets.

@navinpai
Created January 9, 2015 11:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save navinpai/b2be2375c4ea0498ea6c to your computer and use it in GitHub Desktop.
Save navinpai/b2be2375c4ea0498ea6c to your computer and use it in GitHub Desktop.
Tornado Playbook
import tornado.ioloop
import tornado.web
settings = {
"login_url": "/login",
"xsrf_cookies": True,
"cookie_secret":"53CR3T", #change in prod... duh!
"debug":True,
}
class BaseHandler(tornado.web.RequestHandler):
def get_current_user(self):
return self.get_secure_cookie("user")
class MainHandler(BaseHandler):
def get(self):
name="User"
if not self.get_secure_cookie("uname"):
self.set_secure_cookie("uname","navin")
self.render('temp1.html',title=name+" Oranrot Playbook",items=["first","second","third"])
else:
name=self.get_secure_cookie("uname")
self.render('temp1.html',title=name+" Oranrot Playbook",items=["first","second","third"])
#self.write("Hello, world")
class LoginIfNotLoggedIn(BaseHandler):
def get(self):
if not self.current_user:
self.redirect('/login')
else:
self.write("Logged in")
class LoginHandler(BaseHandler):
def get(self):
self.set_secure_cookie("user","navin")
self.write('Please Login')
class NumHandler(BaseHandler):
def get(self,num,name):
#self.write(num+" "+name) #outputs name number
#raise tornado.web.HTTPError(200) #outputs 200 OK
self.redirect('/',permanent=True) #redirects to /
#self.send_error() #redirects to 500 error
application = tornado.web.Application([
(r"/", MainHandler),
(r"/([0-9]+)/([a-z]+)", NumHandler),
(r"/onlyusersallowed", LoginIfNotLoggedIn),
(r"/login", LoginHandler),
], **settings)
if __name__ == "__main__":
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment