我有一个相当基本的Flask应用程序,但是由于某些原因调试模式无法启用,所以每当我遇到错误时,我会得到一个500页的页面,而不是带有回溯和所有这些的漂亮的调试页面。这是我的应用程序/init.py:
from flask import Flask
from config import config
def create_app(config_name):
app = Flask(__name__)
app.config.from_object(config[config_name])
config[config_name].init_app(app)
from .main import main as main_blueprint
app.register_blueprint(main_blueprint)
from .api import api as api_blueprint
app.register_blueprint(api_blueprint, url_prefix='/api/v1.0')
return app
这是我的config.py:
import os
basedir = os.path.abspath(os.path.dirname(__file__))
class Config:
SECRET_KEY = '12345'
SQL_DRIVER = 'SQL Server Native Client 11.0'
SQL_SERVER = 'WIN8\MSSQL2K12'
SQL_DATABASE = 'LogMe'
SQL_USER = 'LogMe'
SQL_PASSWORD = 'password'
@staticmethod
def init_app(app):
pass
class DevelopmentConfig(Config):
DEBUG = True
config = {
'development' : DevelopmentConfig
}
我已经把整个项目发布到GitHub上,如果其他地方碰巧有问题的话,但我假设它在这两个文件中的某个地方: https://github.com/jcaine04/perf-dash/tree/master/app
调试器是WSGI runner服务器的一部分。如果使用不同的WSGI服务器,则需要显式添加调试器中间件:
使用Flask-Script时,
runserver
运行Flask WSGI开发服务器并启用调试器。不幸的是,Flask脚本版本2.0.3引入了a bug;它没有正确设置新的调试标志,除非显式地传入
-d
标志,总是禁用调试器。这与您是否将use_debugger
设置为true无关;这是因为argparse
store_true
选项的默认值是存储False
,而不是在未选中时。解决方法是显式地使用
-d
、或来修补flask_script/commands.py
以提供所有--debug
和--no-debug
选项self.use_debugger
作为默认值:在这里,我将
default=self.use_debugger
添加到两个尚未设置的选项中。对
self.use_reloader
的处理也有类似的缺陷。版本0.6.7和1.0没有这个缺陷;afix has been committed for version 2.0.4(还没有发布)。
相关问题 更多 >
编程相关推荐