flask应用程序启动时没有给出调试引脚,也没有显示请求信息

Lou*_*u K 5 werkzeug flask python-2.7

我真的不确定我是如何进入这种模式的,但是当我在开发系统上启动我的烧瓶应用程序时,我明白了

2016-11-17 17:20:36,717 WARNING: * Debugger is active!

但没有显示调试PIN,我没有看到进入服务器的请求.

当这种情况开始发生时,我喋喋不休地试着看看我做了什么改变导致了这一点,但过于卷入使应用程序在当时跟进工作.当然,任何历史早已不复存在.

你对如何调试这个有什么建议吗?

如果它很重要,我正在Windows上运行.

我使用转储了app.config

        configkeys = app.config.keys()
        configkeys.sort()
        appconfig = []
        for key in configkeys:
            value = app.config[key]
            if not owner_permission.can():
                if key in ['SQLALCHEMY_DATABASE_URI','SECRET_KEY']:
                    value = '<obscured>'
            appconfig.append({'label':key, 'value':value})
        sysvars.append(['app.config',appconfig])
Run Code Online (Sandbox Code Playgroud)

(稍后在html模板中显示sysvars)并查看以下内容.我也试着设置debug=Truerun()调用,但没有效果.

APPLICATION_ROOT / DEBUG True EXPLAIN_TEMPLATE_LOADING False JSONIFY_MIMETYPE application/json JSONIFY_PRETTYPRINT_REGULAR True JSON_AS_ASCII True JSON_SORT_KEYS True LOGGER_HANDLER_POLICY always LOGGER_NAME rrwebapp LOGGING_LEVEL_FILE 20 LOGGING_LEVEL_MAIL 40 LOGGING_MAIL_HANDLER <logging.handlers.SMTPHandler object at 0x03806630> LOGGING_PATH C:\\Users\\Lou\\Documents\\Lou's Software\\projects\\rrwebapp\\rrwebapp.log MAX_CONTENT_LENGTH None MINIMIZE_CDN_JAVASCRIPT False PERMANENT_SESSION_LIFETIME 31 days, 0:00:00 PREFERRED_URL_SCHEME http PRESERVE_CONTEXT_ON_EXCEPTION None PROPAGATE_EXCEPTIONS None SECRET_KEY flask development key SEND_FILE_MAX_AGE_DEFAULT 12:00:00 SERVER_NAME None SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME session SESSION_COOKIE_PATH None SESSION_COOKIE_SECURE False SESSION_REFRESH_EACH_REQUEST True SQLALCHEMY_BINDS None SQLALCHEMY_COMMIT_ON_TEARDOWN False SQLALCHEMY_DATABASE_URI mysql://rrwebuser:xxxxxxxxx@127.0.0.1/testnewracedb SQLALCHEMY_ECHO False SQLALCHEMY_MAX_OVERFLOW None SQLALCHEMY_NATIVE_UNICODE None SQLALCHEMY_POOL_RECYCLE None SQLALCHEMY_POOL_SIZE None SQLALCHEMY_POOL_TIMEOUT None SQLALCHEMY_RECORD_QUERIES None SQLALCHEMY_TRACK_MODIFICATIONS False TEMPLATES_AUTO_RELOAD None TESTING False TRAP_BAD_REQUEST_ERRORS False TRAP_HTTP_EXCEPTIONS False USE_X_SENDFILE False

12/27/16添加requirements.txt

alembic==0.8.8
amqp==1.4.9
anyjson==0.3.3
appdirs==1.4.0
attrdict==2.0.0
billiard==3.3.0.23
blinker==1.4
celery==3.1.23
click==6.6
docutils==0.11
docx==0.2.4
ecdsa==0.13
ez-setup==0.9
Fabric==1.11.1
Flask==0.11.1
Flask-Login==0.3.2
Flask-Principal==0.4.0
Flask-SQLAlchemy==2.1
Flask-Uploads==0.2.1
Flask-WTF==0.12
flup==1.0.2
googlemaps==2.4.4
gpxpy==1.1.2
haversine==0.4.5
httplib2==0.9.2
ipython==1.1.0
itsdangerous==0.24
Jinja2==2.8
kombu==3.0.35
loutilities==0.11.0
lxml==3.6.0
Mako==1.0.4
MarkupSafe==0.23
mysql-python==1.2.5
oauthlib==2.0.0
paramiko==1.17.0
Pillow==3.2.0
pycrypto==2.6.1
pyreadline==2.0
python-editor==1.0.1
pytz==2013.9
requests==2.10.0
requests-oauthlib==0.7.0
running==1.4.0
six==1.10.0
SQLAlchemy==1.0.15
sqlalchemy-datatables===0.4.1lk3
tzlocal==1.0
unicodecsv==0.14.1
Werkzeug==0.11.11
WTForms==2.1
xlrd==0.9.2
xlwt==0.7.5
Run Code Online (Sandbox Code Playgroud)

Lou*_*u K 5

问题结果是,当werkzeug启动时,日志级别设置不正确,导致信息消息被遮挡.需要进一步调试,但这显然是我的应用初始化的问题.

在我的初始化中添加以下代码可以解决问题.

# patch werkzeug logging -- not sure why this is being bypassed in werkzeug._internal._log
werkzeug_logger = logging.getLogger('werkzeug')
werkzeug_logger.setLevel(logging.INFO)
Run Code Online (Sandbox Code Playgroud)