def mongo_setup(app: Application): app.client = ma.AsyncIOMotorClient(MONGO_HOST) app.db = app.client[MONGO_DB_NAME] app['models'] = {'users': User(app.db)} app.on_startup.append(_check_users)
def initialize_db(app: Application) -> None: client, db = connect_db() app.client = client app.db = db app.on_cleanup.append(close_db) initialize_models(app)
async def database(app: web.Application) -> AsyncGenerator[None, None]: """ A function that, when the server is started, connects to postgresql, and after stopping it breaks the connection (after yield) """ config = app['config']['postgres'] print(config) app.db = await aiopg.sa.create_engine(**config) db_set.set() yield app.db.close() await app.db.wait_closed()
async def create_app(loop): app = Application(loop=loop) add_config(app) aiohttp_jinja2.setup(app, loader=jinja2.FileSystemLoader('/'.join([ os.path.dirname(os.path.dirname(__file__)), app['config']['TEMPLATES'] ]))) app.db = await db.init_pg(app) redis_pool = await cache.redis_pool(app) setup_session(app, RedisStorage(redis_pool)) setup_security(app, SessionIdentityPolicy(), AuthorizationPolicy(app.db)) app.on_cleanup.append(db.close_pg) routes.setup_routes(app) return app
async def init_app(loop, config_filename): config = read_config(config_filename) host = config['app']['host'] port = config['app']['port'] configure_logging() # Set up database client = AsyncIOMotorClient( config['mongo']['host'], config['mongo']['port'], ) mongo_db_name = config['mongo']['db'] db = client[mongo_db_name] app = Application(loop=loop) app.db = db # FIXME: find a better way to configure templates folder setup_jinja2(app, loader=jinja2.FileSystemLoader('app/templates')) # Setup views app.router.add_route('GET', '/', root_handler.index) app.router.add_route('GET', '/about', root_handler.about) app.router.add_route('GET', '/api/misc/{id}', api_misc_handler.get) app.router.add_route('POST', '/api/misc/', api_misc_handler.create) app.router.add_static('/static', config['app']['static-dir']) handler = app.make_handler() srv = await loop.create_server(handler, host, port) log.info( 'App started at http://%(host)s:%(port)s', {'host': host, 'port': port} ) return srv, handler
async def setup_connection_pool(app_: Application): if not app_.db: app_.db = await asyncpg.create_pool(dsn=db_dsn)
from config import * @middleware async def unauthenticated_middleware(request, handler): try: response = await handler(request) except auth.NotAuthenticated: raise HTTPFound('/login') else: return response app = Application(middlewares=[unauthenticated_middleware]) app.db = None # Temporal, cambiará bastante en base se desarrolle la abstracción de bd async def setup_connection_pool(app_: Application): if not app_.db: app_.db = await asyncpg.create_pool(dsn=db_dsn) # Registrar Jinja2 jinja_setup(app, loader=FileSystemLoader(templates_path)) # Registrar rutas de módulos router = router.Router(app) router.update(modules) router.register()
async def _on_connect(self, app: web.Application): await self.create_session() app.db = self