[英]Flask variable for app_context
Each time you use the self-written CLI command, a call to app_context occurs, as a result of which extra Blueprint is connected, as well as loggers that are called when the project starts.每次使用自己编写的 CLI 命令时,都会调用 app_context,从而连接额外的蓝图,以及在项目启动时调用的记录器。 Is there any list or variable in which I can write from WHERE the call to
app_context
occurs.是否有任何列表或变量可以在其中写入
app_context
调用发生的地方。 __name__
is the same everywhere, always returns 'app'. __name__
到处都是一样的,总是返回 'app'。
project.py
: project.py
:
from app import create_app, cli
app = create_app()
cli.register(app)
app/__init__.py
: app/__init__.py
:
db = SQLAlchemy()
migrate = Migrate()
def create_app(config_class=Config):
app = Flask(__name__)
app.config.from_object(config_class)
db.init_app(app)
migrate.init_app(app, db)
app.logger.setLevel(logging.INFO)
app.logger.info('Project startup')
return app
app.logger.info('Project startup')
called every time when I'm calling CLI command.每次调用 CLI 命令时都会调用
app.logger.info('Project startup')
。 What condition can be added for not call this function when using CLI commands?使用 CLI 命令时不调用这个 function 可以添加什么条件?
You don't need to set the log level
if you want to disable app.logger
logs.如果要禁用
app.logger
日志,则无需设置log level
。 Let's check:让我们检查:
app = Flask('')
# app logs are disabled. uncomment to see app logs.
# app.logger.setLevel(logging.INFO)
app.logger.info('Project startup')
So you can configure log level
using additional argument:因此,您可以使用附加参数配置
log level
:
def create_app(config_class=Config, log_level=None):
app = Flask(__name__)
app.config.from_object(config_class)
if log_level:
app.logger.setLevel(logging.INFO)
One more good way is use 2 different configs(first - for web app
, second - for CLI app
).另一个好方法是使用 2 个不同的配置(第一个 - 用于
web app
,第二个 - 用于CLI app
)。 In this case you'll have possibility to customize any setting(including log level
).在这种情况下,您可以自定义任何设置(包括
log level
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.