class Server(object): def __init__(self, port, dbname, template_dir): self.db_engine = DBEngine(dbname) self.port = port if not os.path.exists(dbname): self.db_engine.create_db() init_db_args = { 'db_engine': self.db_engine, 'template_loader': Loader(template_dir) } application = Application([ (r"/login", LoginHandler, init_db_args), (r"/logout", LogoutHandler), (r"/pdf", PdfHandler, init_db_args), (r"/pdf/(?P<pdf_id>\w+)", PdfDownloadHandler, init_db_args), (r"/page/(?P<pdf_id>\w+)", PageHandler, init_db_args), (r"/page/(?P<pdf_id>\w+)/(?P<page_num>\w+)", PageDownloadHandler, init_db_args), (r"/.*", DefaultHandler) ]) self.http_server = HTTPServer(application) def run(self): self.http_server.listen(self.port) IOLoop.current().start()
import sys import os from db import DBEngine if __name__ == "__main__": argv = sys.argv if len(argv) != 2: print("Usage: %s <path_to_db>" % argv[0]) sys.exit(1) path_to_db = os.path.abspath(argv[1]) engine = DBEngine(path_to_db) engine.create_db()