References for this article:
- https://www.cnblogs.com/huiwenhua/p/11310833.html
- https://segmentfault.com/a/1190000021245279
The folder structure is as follows:
|—demo
| |—config.py
| |—hello.py
| |—login.html
config.py:
class config:
SCHEDULER_API_ENABLED = True
@staticmethod
def app_init(app):
pass
hello.py
from flask import Flask, redirect, url_for, request
from flask_apscheduler import APScheduler # 引入APScheduler
from config import config
flag = False
#任务配置类
class SchedulerConfig(object):
JOBS = [
{
'id': 'print_job', # 任务id
'func': '__main__:print_job', # 任务执行程序
'args': None, # 执行程序参数
'trigger': 'interval', # 任务执行类型,定时器
'seconds': 5, # 任务执行时间,单位秒
}
]
#定义任务执行程序
def print_job():
print("I'm a scheduler!")
flag = True
app = Flask(__name__)
@app.route('/success/<name>')
def success(name):
return 'welcome %s' % flag
@app.route('/login',methods = ['POST', 'GET'])
def login():
if request.method == 'POST':
user = request.form['nm']
return redirect(url_for('success',name = user))
else:
user = request.args.get('nm')
return redirect(url_for('success',name = user))
if __name__ == '__main__':
app.config.from_object(SchedulerConfig)
scheduler = APScheduler() # 实例化APScheduler
scheduler.init_app(app) # 把任务列表载入实例flask
scheduler.start() # 启动任务计划
app.run(debug = False)
login.html
<html>
<body>
<form action = "http://localhost:5000/login" method = "post">
<p>Enter Name:</p>
<p><input type = "text" name = "nm" /></p>
<p><input type = "submit" value = "submit" /></p>
</form>
</body>
</html>