PageRenderTime 58ms CodeModel.GetById 31ms RepoModel.GetById 0ms app.codeStats 0ms

/examples/tornado_example/app.py

https://gitlab.com/centricwebestate/python-social-auth
Python | 71 lines | 51 code | 20 blank | 0 comment | 6 complexity | dc96d488f0b70bfe441d0253c2326d74 MD5 | raw file
  1. import sys
  2. sys.path.append('../..')
  3. from sqlalchemy import create_engine
  4. from sqlalchemy.ext.declarative import declarative_base
  5. from sqlalchemy.orm import scoped_session, sessionmaker
  6. import tornado.httpserver
  7. import tornado.ioloop
  8. import tornado.options
  9. import tornado.web
  10. from social.apps.tornado_app.models import init_social
  11. from social.apps.tornado_app.routes import SOCIAL_AUTH_ROUTES
  12. import settings
  13. engine = create_engine('sqlite:///test.db', echo=False)
  14. session = scoped_session(sessionmaker(bind=engine))
  15. Base = declarative_base()
  16. class MainHandler(tornado.web.RequestHandler):
  17. def get(self):
  18. self.render('templates/home.html')
  19. class DoneHandler(tornado.web.RequestHandler):
  20. def get(self, *args, **kwargs):
  21. from models import User
  22. user_id = self.get_secure_cookie('user_id')
  23. user = session.query(User).get(int(user_id))
  24. self.render('templates/done.html', user=user)
  25. class LogoutHandler(tornado.web.RequestHandler):
  26. def get(self):
  27. self.request.redirect('/')
  28. tornado.options.parse_command_line()
  29. tornado_settings = dict((k, getattr(settings, k)) for k in dir(settings)
  30. if not k.startswith('__'))
  31. application = tornado.web.Application(SOCIAL_AUTH_ROUTES + [
  32. (r'/', MainHandler),
  33. (r'/done/', DoneHandler),
  34. (r'/logout/', LogoutHandler),
  35. ], cookie_secret='adb528da-20bb-4386-8eaf-09f041b569e0',
  36. **tornado_settings)
  37. def main():
  38. init_social(Base, session, tornado_settings)
  39. http_server = tornado.httpserver.HTTPServer(application)
  40. http_server.listen(8000)
  41. tornado.ioloop.IOLoop.instance().start()
  42. def syncdb():
  43. from models import user_syncdb
  44. init_social(Base, session, tornado_settings)
  45. Base.metadata.create_all(engine)
  46. user_syncdb()
  47. if __name__ == '__main__':
  48. if len(sys.argv) > 1 and sys.argv[1] == 'syncdb':
  49. syncdb()
  50. else:
  51. main()