带有蓝图的烧瓶中的APScheduler

时间:2020-07-13 09:42:35

标签: python flask apscheduler

我真的很想弄清楚如何在烧瓶应用程序中运行APScheduler。

应用程序结构:

v2.0.0-69-g765ac8d 2.0.1

app.py:

/app
├── project/
│   ├── __init__.py
│   ├── main.py
├── app.py

初始化 .py:

from project import app
app.run(host='0.0.0.0', port=80, debug=True)

main.py:

from flask import Flask

app = Flask(__name__)

# set up blueprints
from .main import main as main_blueprint
app.register_blueprint(main_blueprint)

# set up apscheduler
from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler(daemon=True)
scheduler.start()

运行此命令时出现错误:

from flask import Blueprint, render_template, Flask
from . import scheduler
import time

main = Blueprint('main', __name__)

@main.route('/schedule_test')
def schedule_test():
    scheduler.add_job(func=print_date_time, trigger="interval", seconds=3)

def print_date_time():
    print(time.strftime("%A, %d. %B %Y %I:%M:%S %p"))

我确定我在做一些简单的错误,但是我无法解决。

编辑:为清楚起见,当我删除对调度程序的引用时,flask应用程序运行正常。

1 个答案:

答案 0 :(得分:0)

您应将以下代码从__init__.py移至单独的Python文件。

# set up apscheduler
from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler(daemon=True)
scheduler.start()

然后从该文件导入scheduler并将其用于烧瓶路径。

检查一下:

In Python, how to import from the __init__.py in the same directory