python-2.7 - Flask 应用程序启动时没有提供调试引脚,也没有显示请求信息

标签 python-2.7 flask werkzeug

我真的不确定我是如何进入这种模式的,但是当我在开发系统上启动我的 Flask 应用程序时,我看到

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])

(稍后在 html 模板中显示系统变量)并查看以下内容。我也尝试设置 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

16年12月27日添加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

最佳答案

问题原来是 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)

2019 年 5 月 8 日更新: 根据 Jorge Mendes 评论,WERKZEUG_DEBUG_PIN 可用于将特定引脚设置为备用修复

关于python-2.7 - Flask 应用程序启动时没有提供调试引脚,也没有显示请求信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40666325/

相关文章:

python - Flask-SQLAlchemy 声明式和 MySQL 特定数据类型

python 组合框默认当前

python - cURL 发送 JSON 和 PDF 文件

python - python装饰器中的foo=bar(foo)和something=bar(foo)有什么区别?

python - Flask,并非所有参数都在字符串格式化期间转换

python - flask 和 Werkzeug : Testing a post request with custom headers

python - 获取 Flask 请求中收到的数据

python - Flask/Werkzeug 请求对象表单参数

python - 如何在 Python 的 Windows 机器上将 CRLF 转换为 LF

python - 运行 edX 开发者堆栈 : Error on running paver lms