小编Han*_*loo的帖子

源代码更改时自动重新加载Flask应用程序

我知道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 flask foreman

10
推荐指数
3
解决办法
2万
查看次数

如何在Python中的函数入口,内部和退出时进行日志记录

我希望能够使用Python日志记录工具在我的代码中进行简单一致的日志记录.

我能够做到以下几点:

  1. 我希望所有现有/未来的模块和功能都有"输入..."和"完成..."日志消息.
  2. 我不想don't want to add everywhere在每个函数定义中添加相同的代码片段来定义日志记录参数(如下所示).
  3. 我希望log.info(...)etc构造在我在项目层次结构中定义的任何函数中工作.

什么不起作用/我不知道该怎么做:

  1. 我想避免@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)

python logging

7
推荐指数
1
解决办法
3240
查看次数

标签 统计

python ×2

flask ×1

foreman ×1

logging ×1