1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
#!/usr/bin/python
import argparse
from collections import OrderedDict
from flask import Flask, render_template
from werkzeug.serving import run_simple
try:
from werkzeug.middleware.dispatcher import DispatcherMiddleware
except ImportError:
from werkzeug.wsgi import DispatcherMiddleware
from flasgger import __version__
from flasgger.utils import get_examples
app = Flask(__name__)
examples = OrderedDict({
'/{0}'.format(mod.__name__.split('.')[-1]): mod
for mod in sorted(get_examples(), key=lambda x: x.__name__)
})
@app.route('/')
def index():
return render_template('flasgger.html',
examples=examples,
version=__version__)
for example, mod in examples.items():
if hasattr(mod.app, 'swag'):
mod.app.swag.config['basePath'] = example
application = DispatcherMiddleware(
app,
{name: mod.app for name, mod in examples.items()}
)
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Run App for WSGI")
parser.add_argument('-p', '--port', help='App Port')
parser.add_argument('-i', '--host', help='App Host')
parser.add_argument('-r', '--reloader', action='store_true',
help='Turn reloader on')
parser.add_argument('-d', '--debug', action='store_true',
help='Turn debug on')
args = parser.parse_args()
run_simple(
args.host or '0.0.0.0',
int(args.port) if args.port else 5000,
application,
use_reloader=args.reloader or False,
use_debugger=args.debug or False,
)
|