我知道Flask在调试模式下会检测.py源代码文件的更改,并在新请求进入时重新加载它们.
我曾经一直在我的应用程序中看到这个.在我的views.py文件中更改@ app.route装饰部分中的一个小文本,我可以在刷新时看到浏览器中的更改.
但突然间(不记得发生了什么变化),这似乎不再起作用了.
问:我哪里错了?
我在OSX 10.9系统上运行,使用Python 2.7进行VENV设置.我foreman start在我的项目根目录中使用它来启动它.
应用程序结构如下:
[Project Root]
+-[app]
| +-__init__.py
| +- views.py
| +- ...some other files...
+-[venv]
+- config.py
+- Procfile
+- run.py
Run Code Online (Sandbox Code Playgroud)
文件看起来像这样:
# Procfile
web: gunicorn --log-level=DEBUG run:app
Run Code Online (Sandbox Code Playgroud)
# config.py
contains some app specific configuration information.
Run Code Online (Sandbox Code Playgroud)
# run.py
from app import app
if __name__ == "__main__":
app.run(debug = True, port = 5000)
Run Code Online (Sandbox Code Playgroud)
# __init__.py
from flask import Flask
from flask.ext.login import LoginManager
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.mail import …Run Code Online (Sandbox Code Playgroud) 我希望能够使用Python日志记录工具在我的代码中进行简单一致的日志记录.
我能够做到以下几点:
don't want to add everywhere在每个函数定义中添加相同的代码片段来定义日志记录参数(如下所示).log.info(...)etc构造在我在项目层次结构中定义的任何函数中工作.什么不起作用/我不知道该怎么做:
@log在我编写的每个现有/新模块中定义相同的装饰器.# don't want to add everywhere
FORMAT = '%(asctime)s - %(name)-20s - %(levelname)-5s - %(message)s'
LEVEL = logging.DEBUG
logging.basicConfig(format=FORMAT, level=LEVEL)
log = logging.getLogger(__name__)
Run Code Online (Sandbox Code Playgroud)
我的Flask项目的示例代码:
# app/__init__.py
from a import b # various other imports required for app
import logging
FORMAT = '%(asctime)s - %(name)-20s - %(levelname)-5s - %(message)s'
LEVEL = logging.DEBUG
logging.basicConfig(format=FORMAT, level=LEVEL)
log = logging.getLogger(__name__)
# ... various other app init code …Run Code Online (Sandbox Code Playgroud)