Beispiel #1
0
def server(ctx, host=None, port=5000, debug=True, gitlogs=False):
    """Run the app server."""
    if os.environ.get('WERKZEUG_RUN_MAIN') == 'true' or not debug:
        if os.environ.get('WEB_REMOTE_DEBUG', None):
            import pydevd
            _monkey_patch_werkzeug_reloader_for_docker()
            # e.g. '127.0.0.1:5678'
            remote_parts = os.environ.get('WEB_REMOTE_DEBUG').split(':')
            pydevd.settrace(remote_parts[0],
                            port=int(remote_parts[1]),
                            suspend=False,
                            stdoutToServer=True,
                            stderrToServer=True)

        if gitlogs:
            git_logs(ctx)
        from website.app import init_app
        os.environ['DJANGO_SETTINGS_MODULE'] = 'api.base.settings'
        app = init_app(set_backends=True, routes=True)
        settings.API_SERVER_PORT = port
    else:
        from framework.flask import app

    context = None
    if settings.SECURE_MODE:
        context = (settings.OSF_SERVER_CERT, settings.OSF_SERVER_KEY)
    app.run(host=host,
            port=port,
            debug=debug,
            threaded=debug,
            extra_files=[settings.ASSET_HASH_PATH],
            ssl_context=context)
Beispiel #2
0
def server(ctx, host=None, port=5000, debug=True, gitlogs=False):
    """Run the app server."""
    if os.environ.get('WERKZEUG_RUN_MAIN') == 'true' or not debug:
        if os.environ.get('WEB_REMOTE_DEBUG', None):
            import pydevd
            # e.g. '127.0.0.1:5678'
            remote_parts = os.environ.get('WEB_REMOTE_DEBUG').split(':')
            pydevd.settrace(remote_parts[0], port=int(remote_parts[1]), suspend=False, stdoutToServer=True, stderrToServer=True)

        if gitlogs:
            git_logs(ctx)
        from website.app import init_app
        os.environ['DJANGO_SETTINGS_MODULE'] = 'api.base.settings'
        app = init_app(set_backends=True, routes=True)
        settings.API_SERVER_PORT = port
    else:
        from framework.flask import app

    context = None
    if settings.SECURE_MODE:
        context = (settings.OSF_SERVER_CERT, settings.OSF_SERVER_KEY)
    app.run(host=host, port=port, debug=debug, threaded=debug, extra_files=[settings.ASSET_HASH_PATH], ssl_context=context)
Beispiel #3
0
from app.conf.config import *
from framework.flask import app
from optparse import OptionParser, make_option

from framework.schemas import app_schema_config
from framework.validator import JValidator
from app.conf.config import *


def check_config():
    validator = JValidator(app_schema_config)
    for config in validator.schema.keys():
        from framework.exception import ConfigError

        correct, err = validator.validate(eval(config), config)
        if not correct:
            raise ConfigError(config_name=config, err=err)


if __name__ == '__main__':
    """
    app.debug=True时,定时任务或其他脚本会被执行了2次,原因是flask会多开一个线程来监测项目的变化
    解决方案可以将app.dubug修改为False或添加参数use_reloader=False
    """
    check_config()
    if web['debug']:
        CORS(app, supports_credentials=True)
        app.run(host=web['ip'], port=web['port'], debug=True, threaded=True)
    else:
        app.run(host=web['ip'], port=web['port'])