Как использовать Flask-Script и Gunicorn

работаю над приложением Flask с помощью FlaskS встроенный в Dev Server. Я запускаю его с помощью Flask-Script. Я хочу перейти на использование Gunicorn в качестве веб-сервера. Для этого нужно ли писать какой-то код интеграции между Flask-Script и Gunicorn? Или Flask-Script не имеет отношения к запуску приложения с помощью Gunicorn?

Заранее спасибо!

Реквизит @ Шон-Линч. Ниже работает проверенный код, основанный на его ответе. Изменения, которые я сделал, были:

Варианты, которые неПризнанные Gunicorn удалены изsys.argv вremove_non_gunicorn_command_line_args() прежде чем пытаться запустить сервер. В противном случае Gunicorn выдает ошибку с таким сообщением:error: unrecognized arguments: --port 5010, Я удаляю-p потому что, хотя это нене может вызвать ошибку,только потому, что Gunicorn считает его короткой формойpidfile вариант, который явно не то, чтос намерением.

Подпись GunicornServer.handle () изменена, чтобы соответствовать методу, который она переопределяет, т.е. Command.handle () -

from flask_script import Command
from gunicorn.app.base import Application

class GunicornServer(Command):

    description = 'Run the app within Gunicorn'

    def __init__(self, host='127.0.0.1', port=8000, workers=6):

        self.port = port
        self.host = host
        self.workers = workers

    def get_options(self):
        return (
            Option('-t', '--host',
                   dest='host',
                   default=self.host),

            Option('-p', '--port',
                   dest='port',
                   type=int,
                   default=self.port),

            Option('-w', '--workers',
                   dest='workers',
                   type=int,
                   default=self.workers),
        )

    def handle(self, app, *args, **kwargs):

        host = kwargs['host']
        port = kwargs['port']
        workers = kwargs['workers']

        def remove_non_gunicorn_command_line_args():
            import sys
            args_to_remove = ['--port','-p']
            def args_filter(name_or_value):
                keep = not args_to_remove.count(name_or_value)
                if keep:
                    previous = sys.argv[sys.argv.index(name_or_value) - 1]
                    keep = not args_to_remove.count(previous)
                return keep
            sys.argv = filter(args_filter, sys.argv)

        remove_non_gunicorn_command_line_args()

        from gunicorn import version_info
        if version_info < (0, 9, 0):
            from gunicorn.arbiter import Arbiter
            from gunicorn.config import Config
            arbiter = Arbiter(Config({'bind': "%s:%d" % (host, int(port)),'workers': workers}), app)
            arbiter.run()
        else:
            class FlaskApplication(Application):
                def init(self, parser, opts, args):
                    return {
                        'bind': '{0}:{1}'.format(host, port),
                        'workers': workers
                    }

                def load(self):
                    return app

            FlaskApplication().run()

manager.add_command('gunicorn', GunicornServer())

Ответы на вопрос(6)

Ваш ответ на вопрос