Skip to content

Instantly share code, notes, and snippets.

@deontologician
Created December 11, 2013 20:59
Show Gist options
  • Save deontologician/7918366 to your computer and use it in GitHub Desktop.
Save deontologician/7918366 to your computer and use it in GitHub Desktop.
webapp snippets
from tornado import web
from tornado import ioloop
from sqlalchemy.engine
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
import os
os.getenv('NAME')
import user_handlers
class APIHandlerBase(web.RequestHandler):
def initialize(self):
'''setup here'''
engine = create_engine(os.getenv('CONNECT_STRING'))
self.session = sessionmaker(bind=engine)()
def finalize(self):
'''cleanup here'''
pass
def get_current_user(self):
# check cookies, then grab user object from db
return user
class UserHandler(web.RequestHandler):
@web.authenticated
@security.authorized('admin', 'user')
def get(self, user_id):
user = self.session.get(user_id)
self.redirect(self.reverse_url('user', user_id))
self.write({'username': user.username,
'user_id': user.id,
})
format_json(user)
self.application
class AccessGuardApp(tornado.web.Application):
def __init__(self, debug=False):
handlers = [
web.url(r'/', 'MainHandler', name='main'),
web.url(r'/users/(\d)', user_handlers.UserHandler, name='user'),
]
settings = {'debug': debug}
web.Application.__init__(self, handlers, **settings)
if __name__ == "__main__":
application = AccessGuardApp(debug=True)
application.listen(8888)
ioloop.IOLoop.instance().start()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment