Mercurial > piecrust2
changeset 897:b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sat, 08 Jul 2017 22:01:00 -0700 |
parents | 85d2b386b971 |
children | 98becbc75ccc |
files | piecrust/admin/wsgiutil.py piecrust/wsgiutil/__init__.py piecrust/wsgiutil/cwdadminapp.py |
diffstat | 3 files changed, 46 insertions(+), 25 deletions(-) [+] |
line wrap: on
line diff
--- a/piecrust/admin/wsgiutil.py Sat Jul 08 21:44:03 2017 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -import logging - - -logger = logging.getLogger() - - -def get_wsgi_app(admin_root=None, log_file=None, - max_log_bytes=4096, log_backup_count=0, - log_level=logging.INFO): - if log_file: - from logging.handlers import RotatingFileHandler - handler = RotatingFileHandler(log_file, maxBytes=max_log_bytes, - backupCount=log_backup_count) - handler.setLevel(log_level) - logging.getLogger().addHandler(handler) - - logger.debug("Creating WSGI application.") - es = {} - if admin_root: - es['FOODTRUCK_ROOT'] = admin_root - from .web import create_foodtruck_app - app = create_foodtruck_app(es) - return app -
--- a/piecrust/wsgiutil/__init__.py Sat Jul 08 21:44:03 2017 -0700 +++ b/piecrust/wsgiutil/__init__.py Sat Jul 08 22:01:00 2017 -0700 @@ -1,9 +1,41 @@ +import logging from piecrust.serving.server import WsgiServer -def get_app(root_dir, cache_key='prod', enable_debug_info=False): +def _setup_logging(log_file, log_level, max_log_bytes, log_backup_count): + if log_file: + from logging.handlers import RotatingFileHandler + handler = RotatingFileHandler(log_file, maxBytes=max_log_bytes, + backupCount=log_backup_count) + handler.setLevel(log_level) + logging.getLogger().addHandler(handler) + + +def get_app(root_dir, *, + cache_key='prod', + enable_debug_info=False, + log_file=None, + log_level=logging.INFO, + log_backup_count=0, + max_log_bytes=4096): + _setup_logging(log_file, log_level, max_log_bytes, log_backup_count) app = WsgiServer(root_dir, cache_key=cache_key, enable_debug_info=enable_debug_info) return app + +def get_admin_app(root_dir, *, + url_prefix='pc-admin', + log_file=None, + log_level=logging.INFO, + log_backup_count=0, + max_log_bytes=4096): + _setup_logging(log_file, log_level, max_log_bytes, log_backup_count) + es = { + 'FOODTRUCK_ROOT': root_dir, + 'FOODTRUCK_URL_PREFIX': url_prefix} + from piecrust.admin.web import create_foodtruck_app + app = create_foodtruck_app(es) + return app +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/piecrust/wsgiutil/cwdadminapp.py Sat Jul 08 22:01:00 2017 -0700 @@ -0,0 +1,13 @@ +# This is a utility module that can be used with any WSGI-compatible server +# like Werkzeug or Gunicorn. It returns a WSGI app for serving a PieCrust +# administration panel located in the current working directory. +import os +from piecrust.wsgiutil import get_admin_app + + +root_dir = os.getcwd() +app = get_admin_app(root_dir) +# Add this for `mod_wsgi`. +application = app + +