python自动化测试中APScheduler Flask的应用示例

以下是关于“python自动化测试中APScheduler Flask的应用示例”的详细讲解:

简介

APScheduler 是一个轻量级的 Python 定时任务调度框架,可以添加多个任务,可以动态添加修改和删除任务,先来看一下简单示例:

from apscheduler.schedulers.blocking import BlockingScheduler

def job():
    print('job start...')

scheduler = BlockingScheduler()
scheduler.add_job(job, 'interval', seconds=5)
scheduler.start()

这个简单的例子通过APScheduler实现了每五秒输出一个“job start..."的效果。

Flask是一个用Python编写的轻量级Web应用框架,具有易于扩展、关注URL和view函数的小型化等优点,也是 Python 中最流行的 Web 框架之一。

应用示例

示例一:使用APScheduler实现定时爬取数据

  1. 安装APScheduler(如果没有安装):
pip install apscheduler
  1. 下载需要爬取的数据(以博客园为例):
import requests
from bs4 import BeautifulSoup

def getData():
    url = 'https://www.cnblogs.com/'
    res = requests.get(url)
    soup = BeautifulSoup(res.text, 'html.parser')
    print(soup)
  1. 配置APScheduler
from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.triggers.interval import IntervalTrigger

def timer():
    scheduler = BlockingScheduler()
    scheduler.add_job(func=getData, trigger=IntervalTrigger(seconds=30))
    scheduler.start()

if __name__ == '__main__':
    timer()

这个代码块实现了每30秒爬取一次博客园数据的效果。

  1. 在Flask中实现定时任务
from apscheduler.schedulers.background import BackgroundScheduler
from flask import Flask
import datetime

app = Flask(__name__)

@app.route("/")
def hello():
    now = datetime.datetime.now()
    return f"Hello, now time is {now}"

def job():
    print('Run the job at: %s' % datetime.datetime.now())

if __name__ == '__main__':
    scheduler = BackgroundScheduler()
    scheduler.add_job(job, 'interval', seconds=10)
    scheduler.start()
    app.run()

这个代码块实现了每10秒输出“Run the job at...”的效果。

示例二:使用APScheduler和Flask实现定时任务记录

  1. 配置数据库
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///db.sqlite'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)

class JobRecord(db.Model):
    __tablename__ = 'jobs'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255))
    description = db.Column(db.Text)
    execute_time = db.Column(db.DateTime)

    def __str__(self):
        return "<JobRecord(name='%s', description='%s', execute_time='%s')>" % \
               (self.name, self.description, self.execute_time)
  1. 编写视图函数
from flask import jsonify
from apscheduler.schedulers.background import BackgroundScheduler
import datetime

@app.route("/")
def hello():
    now = datetime.datetime.now()
    return f"Hello, now time is {now}"

def job():
    job_record = JobRecord(name="Test Job", description="Test Job Description",
                           execute_time=datetime.datetime.now())
    db.session.add(job_record)
    db.session.commit()

@app.route("/jobs")
def joblist():
    jobs = JobRecord.query.all()
    res = []
    for j in jobs:
        res.append({
            "name" : j.name,
            "description" : j.description,
            "execute_time" : str(j.execute_time)
        })
    return jsonify(res)

if __name__ == '__main__':
    db.create_all()
    scheduler = BackgroundScheduler()
    scheduler.add_job(job, 'interval', seconds=10)
    scheduler.start()
    app.run()

在这个代码块中,我们每隔10秒钟就会往数据库中插入一条记录,同时我们还可以通过"/jobs"路由查看已经执行的所有任务次数。

这就是使用APScheduler Flask的应用示例的完整攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python自动化测试中APScheduler Flask的应用示例 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • 在Python的Flask框架中使用模版的入门教程

    在Python的Flask框架中使用模板是非常常见的操作,因为它能够帮助我们更快地开发网站,同时也能够方便我们管理网站的视图和数据。下面是在Python的Flask框架中使用模板的入门教程及两条示例说明。 1. 安装Flask框架 首先,我们需要在本地环境中安装Flask框架。可以通过以下命令来安装: pip install flask 2. 创建Flask…

    Flask 2023年5月15日
    00
  • 利用nginx解决跨域问题的方法(以flask为例)

    当我们使用 Flask 构建 API 并通过 AJAX 请求进行数据传递的时候,容易遇到跨域问题,这时候可以使用 Nginx 转发解决跨域问题。 方法一 下面是一个简单的 Nginx 配置,将 Flask 提供的 API 接口转发到本地 5000 端口,即可解决跨域问题。 首先安装并启动 Nginx,然后创建一个名为 myapp.conf 的 Nginx 配…

    Flask 2023年5月16日
    00
  • Flask 数据库迁移详情

    Flask 数据库迁移是将数据库中的表结构变化应用到现有数据库上的过程。在 Flask 应用中,通常使用 Flask-Migrate 扩展来实现数据迁移。下面是实现 Flask 数据库迁移的完整攻略。 准备工作 在使用 Flask-Migrate 扩展进行数据库迁移之前,需要先安装好 Flask 和 Flask-Migrate 扩展。 安装 Flask 可以…

    Flask 2023年5月16日
    00
  • python flask几分钟实现web服务的例子

    下面是关于“python flask几分钟实现web服务的例子”的完整攻略,包含两个示例: 示例 1:Hello World 1. 安装 Flask 在命令行中输入以下命令安装Flask: pip install flask 2. 创建 Python 文件 在任何目录中创建一个名为app.py的 Python 文件,然后复制以下代码: from flask …

    Flask 2023年5月15日
    00
  • 微信小程序签到功能

    微信小程序签到功能的完整攻略 1. 功能简介 微信小程序的签到功能是指用户在小程序中每日进行签到,累计积分,可以兑换成相应的奖品或福利。这个功能可以让用户体验更优,从而提升用户对小程序的黏性。 2. 实现步骤 2.1 后台数据库设计 在后台数据库中,需要设计以下几个表格: 用户表:存储用户的基本信息,如用户ID、姓名等。 签到表:存储用户签到的详细信息,如签…

    Flask 2023年5月16日
    00
  • 浅谈flask中的before_request与after_request

    前言 Flask是一个轻量级的Python Web框架,由于其简单易用的特点得到了众多web开发者的追捧。而本文将主要探讨Flask中的before_request和after_request等钩子函数,这两个函数可以让你在对用户请求进行处理和返回响应之前与之后执行你自己的方法,从而让你在请求与响应处理过程中灵活地添加一些钩子函数。本文将详细讨论before…

    Flask 2023年5月16日
    00
  • python框架flask入门之环境搭建及开启调试

    接下来我会详细讲解“Python框架Flask入门之环境搭建及开启调试”的完整攻略。 Flaks的环境搭建主要包括安装Python、安装Flask和安装虚拟环境。 安装Python Python是Flask框架的基础,因此我们需要先安装Python。可以从Python官网下载Python安装包,根据自己电脑的操作系统选择对应版本下载安装即可。 安装Flask…

    Flask 2023年5月15日
    00
  • python flask中静态文件的管理方法

    下面是Python Flask中静态文件的管理方法的完整攻略。 1. Flask中静态文件的管理 在Flask中,我们可以使用内置的静态文件支持来处理静态文件。Flask会在应用程序静态文件目录中查找静态文件,这个目录默认为static。 你可以通过url_for函数来引用静态文件,在HTML模板中引用这个函数即可,例如: <img src=&quot…

    Flask 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部