def tree_mount(self, module_name, http_root, static_dir, orm_base_obj=None, db_plugin=None): # db sqlite if http_root: base_uri = '/%s' % module_name config_map = {} if static_dir: config_map = { '/statics': { 'tools.staticdir.on': True, 'tools.staticdir.dir': static_dir, 'tools.staticdir.index': 'index.html', }, } if orm_base_obj and db_plugin: cherrypy.tools.db = SQLAlchemyTool() config_map.update({ '/': { 'tools.db.on': True if orm_base_obj and db_plugin else False } }) cherrypy.tree.mount(http_root, base_uri, config_map) if orm_base_obj and db_plugin: sqlalchemy_plugin = SQLAlchemyPlugin( cherrypy.engine, orm_base_obj, db_plugin, echo=True ) sqlalchemy_plugin.subscribe() sqlalchemy_plugin.create()
def start_server(): sessions_dir = os.getcwd() + '/sessions' if not os.path.exists(sessions_dir): os.makedirs(sessions_dir) server_config = { "server.socket_host": '0.0.0.0', "server.socket_port": 8095, "engine.autoreload.on": False, "tools.sessions.on": True, "tools.sessions.storage_type": "file", "tools.sessions.storage_path": sessions_dir, "tools.sessions.timeout": 180 } application_config = { '/': { 'tools.staticdir.root': os.getcwd() }, '/static': { 'tools.staticdir.on': True, 'tools.staticdir.dir': 'static' } } cherrypy.tools.db = SQLAlchemyTool() SQLAlchemyPlugin( cherrypy.engine, ORMBase, 'postgresql://*****:*****@localhost:5432/blog_cherry') cherrypy.config.update(server_config) cherrypy.tree.mount(RootClass(), '/', config=application_config) cherrypy.engine.start()
def run(): cherrypy.tools.db = SQLAlchemyTool() global_conf = { 'global': { 'server.socket_host': '127.0.0.1', 'server.socket_port': int(os.environ.get('PORT', 5000)), }, 'databases': { 'driver': "postgres", 'host': "localhost", 'port': 5432, } } cherrypy.config.update(global_conf) app_config = { '/': { 'tools.db.on': True, }, '/static': { 'tools.staticdir.root': os.path.dirname(os.path.abspath(__file__)), 'tools.staticdir.on': True, 'tools.staticdir.dir': 'static', }, } cherrypy.tree.mount(Notes_Class(), '/', config=app_config) cherrypy.tree.mount(ListNotes_Class(), '/listNotes/', config=app_config) # dbfile = os.path.join(HERE, 'database1.db') # if not os.path.exists(dbfile): # open(dbfile, 'w+').close() sqlalchemy_plugin = SQLAlchemyPlugin( cherrypy.engine, Base, 'postgresql+psycopg2://postgres:[email protected]:5432/db1') sqlalchemy_plugin.subscribe() sqlalchemy_plugin.create() cherrypy.engine.start() cherrypy.engine.block()
def run(): cherrypy.tools.db = SQLAlchemyTool() app_config = { '/': { 'tools.db.on': True, } } cherrypy.tree.mount(Root(), '/', config=app_config) dbfile = os.path.join(HERE, 'log.db') if not os.path.exists(dbfile): open(dbfile, 'w+').close() sqlalchemy_plugin = SQLAlchemyPlugin( cherrypy.engine, Base, 'sqlite:///%s' % (dbfile), echo=True ) sqlalchemy_plugin.subscribe() sqlalchemy_plugin.create() cherrypy.engine.start() cherrypy.engine.block()
def run(): cherrypy.tools.db = SQLAlchemyTool() auto_reload = True app_config = { 'global': { 'engine.autoreload.on': auto_reload }, '/': { 'tools.db.on': True }, '/css': { 'tools.staticdir.on': True, 'tools.staticdir.dir': os.path.join(MOD_DIR, 'css') }, } ip = get_ip() print("ip", get_ip()) cherrypy.config.update({'engine.autoreload.on': auto_reload}) cherrypy.tree.mount(App(os.path.join(MOD_DIR, "defs")), '/', config=app_config) cherrypy.config.update({'server.socket_host': '0:0:0:0:0:0:0:0'}) dbfile = os.path.join(MOD_DIR, 'log.db') if not os.path.exists(dbfile): open(dbfile, 'w+').close() sqlalchemy_plugin = SQLAlchemyPlugin(cherrypy.engine, Base, 'sqlite:///%s' % (dbfile), echo=True) sqlalchemy_plugin.subscribe() sqlalchemy_plugin.create() cherrypy.engine.start() import webbrowser webbrowser.open('http://{}:8080'.format(ip)) cherrypy.engine.block()
def run(): db_log_file_name = '/var/log/secpi/db.log' db_handler = logging.FileHandler(db_log_file_name) db_handler.setLevel(logging.WARN) db_logger = logging.getLogger('sqlalchemy') db_logger.addHandler(db_handler) db_logger.setLevel(logging.WARN) cherrypy.tools.db = SQLAlchemyTool() cherrypy.tools.lookup = MakoTemplateTool('%s/webinterface/templates'%(PROJECT_PATH)) cherrypy.config.update({ 'server.socket_host': '0.0.0.0', 'server.socket_port': 8443, 'server.ssl_module':'pyopenssl', 'server.ssl_certificate':'%s/certs/%s'%(PROJECT_PATH, config.get("server_cert")), 'server.ssl_private_key':'%s/certs/%s'%(PROJECT_PATH, config.get("server_key")), 'server.ssl_certificate_chain':'%s/certs/%s'%(PROJECT_PATH, config.get("server_ca_chain")), 'log.error_file': "/var/log/secpi/webinterface.log", 'log.access_file': "/var/log/secpi/webinterface_access.log", 'log.screen': False }) app_config = { '/': { 'tools.db.on': True, 'tools.lookup.on': True, 'tools.staticdir.root': os.path.join(PROJECT_PATH, "webinterface"), 'tools.auth_digest.on': True, 'tools.auth_digest.realm': 'secpi', 'tools.auth_digest.get_ha1': auth_digest.get_ha1_file_htdigest('%s/webinterface/.htdigest'%(PROJECT_PATH)), 'tools.auth_digest.key': 'ae41349f9413b13c' }, '/static': { 'tools.staticdir.on': True, 'tools.staticdir.dir': 'static' }, "/favicon.ico": { "tools.staticfile.on": True, "tools.staticfile.filename": PROJECT_PATH+"/webinterface/favicon.ico" } } cherrypy.tree.mount(Root(), '/', app_config) dbfile = "%s/data.db"%PROJECT_PATH if not os.path.exists(dbfile): open(dbfile, 'w+').close() sqlalchemy_plugin = SQLAlchemyPlugin( cherrypy.engine, objects.Base, 'sqlite:///%s' % (dbfile), echo=False ) sqlalchemy_plugin.subscribe() sqlalchemy_plugin.create() cherrypy.engine.start() cherrypy.engine.block()
'/img': { 'tools.staticdir.on': True, 'tools.staticdir.dir': os.path.join(path, 'img') }, '/js': { 'tools.staticdir.on': True, 'tools.staticdir.dir': os.path.join(path, 'js') }, '/pdf': { 'tools.staticdir.on': True, 'tools.staticdir.dir': os.path.join(path, 'pdf') }, '/favicon.ico': { 'tools.staticfile.on': True, 'tools.staticfile.filename': os.path.join(path, 'favicon.ico') } } dsn = credentials[run_env][ 'writer'] # in the format <engine>://<connection_string> cherrypy.tools.db = SQLAlchemyTool() # sqlalchemy_plugin = SQLAlchemyPlugin(cherrypy.engine, Base, 'sqlite:///dt_opc_test.db') sqlalchemy_plugin = SQLAlchemyPlugin(cherrypy.engine, Base, dsn) sqlalchemy_plugin.subscribe() sqlalchemy_plugin.create() webapp = DTOPC() webapp.save_review_rating = ReviewRatingSaverService() cherrypy.quickstart(webapp, '/', conf)
def run(): db_log_file_name = '/var/log/secpi/db.log' db_handler = logging.FileHandler(db_log_file_name) db_handler.setLevel(logging.WARN) db_logger = logging.getLogger('sqlalchemy') db_logger.addHandler(db_handler) db_logger.setLevel(logging.WARN) cherrypy.tools.db = SQLAlchemyTool() cherrypy.tools.lookup = MakoTemplateTool('%s/webinterface/templates' % (PROJECT_PATH)) cherrypy.config.update({ 'server.socket_host': '0.0.0.0', 'server.socket_port': 8443, 'server.ssl_module': 'pyopenssl', 'server.ssl_certificate': '%s/certs/%s' % (PROJECT_PATH, config.get("server_cert")), 'server.ssl_private_key': '%s/certs/%s' % (PROJECT_PATH, config.get("server_key")), 'server.ssl_certificate_chain': '%s/certs/%s' % (PROJECT_PATH, config.get("server_ca_chain")), 'log.error_file': "/var/log/secpi/webinterface.log", 'log.access_file': "/var/log/secpi/webinterface_access.log", 'log.screen': False }) app_config = { '/': { 'tools.db.on': True, 'tools.lookup.on': True, 'tools.staticdir.root': os.path.join(PROJECT_PATH, "webinterface"), 'tools.auth_digest.on': True, 'tools.auth_digest.realm': 'secpi', 'tools.auth_digest.get_ha1': auth_digest.get_ha1_file_htdigest('%s/webinterface/.htdigest' % (PROJECT_PATH)), 'tools.auth_digest.key': 'ae41349f9413b13c' }, '/static': { 'tools.staticdir.on': True, 'tools.staticdir.dir': 'static' }, "/favicon.ico": { "tools.staticfile.on": True, "tools.staticfile.filename": PROJECT_PATH + "/webinterface/favicon.ico" } } cherrypy.tree.mount(Root(), '/', app_config) dbfile = "%s/data.db" % PROJECT_PATH if not os.path.exists(dbfile): open(dbfile, 'w+').close() sqlalchemy_plugin = SQLAlchemyPlugin(cherrypy.engine, objects.Base, 'sqlite:///%s' % (dbfile), echo=False) sqlalchemy_plugin.subscribe() sqlalchemy_plugin.create() cherrypy.engine.start() cherrypy.engine.block()
# @cherrypy.tools.accept(media="text/html") # def GET(self): # client = MongoClient() # db = client.test_database # post = {"author": "Mike", "text": "My first blog post!", "tags": ["mongodb", "python", "pymongo"]} # posts = db.posts # post_id = posts.insert_one(post).inserted_id # return str(post_id) # tmpl = env.get_template('base.html') # return tmpl.render() def OPTIONS(self): return None root = Root() root.auth = Auth() root.users = Users() root.forms = Forms() root.debug = Debug() root.games = Games() root.query = GraphQL() if __name__ == '__main__': cherrypy.tools.db = SQLAlchemyTool() cherrypy.config.update("server.conf") cherrypy.tree.mount(root, '/', "server.conf") saplugin = SQLAlchemyPlugin(cherrypy.engine, declarative_base(), 'mysql+pymysql://{0}@abstractplay.db:3306/sdg'.format(lib.common.getSecret('db-userpass'))) saplugin.subscribe() cherrypy.engine.start() cherrypy.engine.block()
pattern += "{user}" if "pass" in conf: pattern += ":{pass}" if "host" in conf: pattern += "@{host}" if "port" in conf: pattern += ":{port}" if "database" in conf: pattern += "/{database}" return pattern.format(**conf) if __name__ == '__main__': cherrypy.tools.db = SQLAlchemyTool() cherrypy.config.update("server.conf") app = cherrypy.tree.mount(Root(), '/', "app.conf") create_kw = {} if cherrypy.config.get('debug', False): create_kw['echo'] = True engine_url = get_engine_url(app.config['db']) sap = SQLAlchemyPlugin(cherrypy.engine, ORMBase, engine_url, **create_kw) sap.start() sap.bind(cherrypy.tools.db.session) sap.create() cherrypy.engine.start() cherrypy.engine.block()