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全栈要学什么 python全栈学习路线

    Python全栈是指掌握从前端到后端开发中所有技术的开发者,下面是Python全栈学习路线的完整攻略及示例说明。 前端开发 基础HTML、CSS和JavaScript概念 HTML:超文本标记语言(HyperText Markup Language)是一种用来描述网页的语言。 CSS:层叠样式表(Cascading Style Sheets)用于控制网页的布…

    Flask 2023年5月15日
    00
  • flask框架路由常用定义方式总结

    让我为你详细讲解一下“flask框架路由常用定义方式总结”的完整攻略。 什么是flask框架? Flask是一个基于 Python 语言的轻量级 Web 开发框架,使用 Werkzeug 作为 Web 服务器网关接口,使用 Jinja2 模板引擎,这两个库也都是 Flask 标配。它设计精简,易于扩展,使它成为很多 Web 开发者喜欢使用的框架之一。 什么是…

    Flask 2023年5月15日
    00
  • Flask搭建一个API服务器的步骤

    下面我将详细讲解使用Flask框架搭建API服务器的步骤。 简介 Flask 是一个“微型”Python Web框架。它非常简单易学且具有高度的灵活性。本文将介绍如何使用 Flask 框架搭建一个API服务器。 步骤 1. 安装 Flask 在开始之前,请确保您的电脑上已经安装了 Python 3.x,并且安装了 Flask 框架。您可以使用以下命令安装 F…

    Flask 2023年5月15日
    00
  • flask应用部署到服务器的方法

    将一个 Flask 应用程序部署到服务器需要经过以下步骤: 准备服务器 首先,需要一台运行 Linux 的服务器。推荐使用 Ubuntu 或 CentOS 等流行的 Linux 发行版,并进行更新。 安装 Flask 要在服务器上运行 Flask 应用,需要在服务器上安装 Flask。可以使用 pip 来安装 Flask: $ sudo pip instal…

    Flask 2023年5月15日
    00
  • Flask框架实现debug模式下计算pin码

    下面是详细讲解 Flask 框架实现 debug 模式下计算 pin 码的完整攻略。 1. 确认 Flask debug 模式开启 在使用 Flask 框架进行开发时,可以通过设置 Flask 的 debug 属性来开启 debug 模式。在 debug 模式中,Flask 会自动将错误信息以及堆栈跟踪信息输出到浏览器中,方便开发过程中调试。在 Flask …

    Flask 2023年5月16日
    00
  • 浅谈flask截获所有访问及before/after_request修饰器

    下面是“浅谈flask截获所有访问及before/after_request修饰器”的完整攻略和示例说明。 这篇文章的目的 本文旨在介绍如何使用Flask中的before_request和after_request修饰器方法,截获所有对网站的访问请求,并在请求处理前或请求处理后做出一些操作。 Flask中的before_request和after_reque…

    Flask 2023年5月16日
    00
  • Python单元测试的9个技巧技巧

    以下是关于“Python单元测试的9个技巧”的完整攻略。 1. 了解单元测试的概念 单元测试是指对程序的最小可测试模块进行验证性测试,这个模块可以是函数、类、方法的一部分或者整个模块。因为它是针对最小可测试模块的测试,所以它可以识别出代码质量的问题,增强代码的可维护性。 2. 使用assert语句进行检验 在Python中,如果测试表达式为False,将会抛…

    Flask 2023年5月15日
    00
  • 详解python开发环境搭建

    详解Python开发环境搭建 在开始Python开发之前,需要先搭建好Python的开发环境。本文将详细讲解Python开发环境的搭建过程。 安装Python 首先,需要安装Python。可以去Python官网下载安装包,选择对应的版本(Python2或Python3),然后按照安装向导完成安装。 安装代码编辑器 安装完Python之后,需要安装一个代码编辑…

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