Mercurial > piecrust2
comparison piecrust/wsgiutil/__init__.py @ 935:7ecb946bfafd
admin: Lots of fixes for running the admin panel in a WSGI server.
- Use new source APIs in the dashboard to open WIP files.
- Fixed broken/outdated code in some views.
- Fixed cases when Flask is not running at the root URL by using the
`SCRIPT_NAME` variable somewhat more properly.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Wed, 04 Oct 2017 09:15:16 -0700 |
parents | b4156f5d4368 |
children | d0f86d9a9d40 |
comparison
equal
deleted
inserted
replaced
934:98430e7143d2 | 935:7ecb946bfafd |
---|---|
1 import logging | 1 import logging |
2 from piecrust.serving.server import WsgiServer | 2 from piecrust.serving.wrappers import get_piecrust_server |
3 | 3 |
4 | 4 |
5 def _setup_logging(log_file, log_level, max_log_bytes, log_backup_count): | 5 def _setup_logging(log_file, log_level, max_log_bytes, log_backup_count): |
6 if log_file: | 6 if log_file: |
7 from logging.handlers import RotatingFileHandler | 7 from logging.handlers import RotatingFileHandler |
11 logging.getLogger().addHandler(handler) | 11 logging.getLogger().addHandler(handler) |
12 | 12 |
13 | 13 |
14 def get_app(root_dir, *, | 14 def get_app(root_dir, *, |
15 cache_key='prod', | 15 cache_key='prod', |
16 enable_debug_info=False, | 16 serve_admin=False, |
17 log_file=None, | 17 log_file=None, |
18 log_level=logging.INFO, | 18 log_level=logging.INFO, |
19 log_backup_count=0, | 19 log_backup_count=0, |
20 max_log_bytes=4096): | 20 max_log_bytes=4096): |
21 _setup_logging(log_file, log_level, max_log_bytes, log_backup_count) | 21 _setup_logging(log_file, log_level, max_log_bytes, log_backup_count) |
22 app = WsgiServer(root_dir, | 22 app = get_piecrust_server(root_dir, |
23 cache_key=cache_key, | 23 serve_site=True, |
24 enable_debug_info=enable_debug_info) | 24 serve_admin=serve_admin, |
25 cache_key=cache_key) | |
25 return app | 26 return app |
26 | 27 |
27 | 28 |
28 def get_admin_app(root_dir, *, | 29 def get_admin_app(root_dir, *, |
29 url_prefix='pc-admin', | 30 cache_key='prod', |
30 log_file=None, | 31 log_file=None, |
31 log_level=logging.INFO, | 32 log_level=logging.INFO, |
32 log_backup_count=0, | 33 log_backup_count=0, |
33 max_log_bytes=4096): | 34 max_log_bytes=4096): |
34 _setup_logging(log_file, log_level, max_log_bytes, log_backup_count) | 35 _setup_logging(log_file, log_level, max_log_bytes, log_backup_count) |
35 es = { | 36 app = get_piecrust_server(root_dir, |
36 'FOODTRUCK_ROOT': root_dir, | 37 serve_site=False, |
37 'FOODTRUCK_URL_PREFIX': url_prefix} | 38 serve_admin=True, |
38 from piecrust.admin.web import create_foodtruck_app | 39 cache_key=cache_key) |
39 app = create_foodtruck_app(es) | |
40 return app | 40 return app |
41 | 41 |