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

yizhihongxing

以下是关于“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 之模板继承方式” 的完整攻略,包含两条示例说明。 模板继承 在 Flask 中,可以使用模板继承来简化模板的设计。模板继承是指创建一个基础模板,该模板包含应用程序中所有页面共享的公共部分,然后在单独的模板中使用基础模板作为一个模板,以便将其覆盖和拓展。这样,可以避免在每个单独的模板中反复编写共同的代码,提供了便利的灵…

    Flask 2023年5月15日
    00
  • python+flask实现API的方法

    一、Python+Flask实现API的方法 Flask是一个轻量级的Web框架,使用Python编写。通过Flask,我们可以快速地构建一个API服务。实现API一般分为以下几个步骤: 定义路由 定义API请求的方法 定义API的返回数据格式 启动Flask应用 二、示例1 下面通过一个简单的示例来演示如何使用Python+Flask实现API。 定义路由…

    Flask 2023年5月15日
    00
  • 深度定制Python的Flask框架开发环境的一些技巧总结

    下面是详细讲解“深度定制Python的Flask框架开发环境的一些技巧总结”的攻略: 1. 安装指定版本的Flask框架 首先,在进行Flask框架的开发时,需要安装特定的版本。这可以使用pip来实现,如下所示: pip install Flask==1.1.2 这将安装Flask的1.1.2版本。请注意,版本号需要根据您的项目需求进行更改。 2. 使用虚拟…

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

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

    Flask 2023年5月15日
    00
  • [项目布局配置]Nosql与PythonWeb-Flask框架组合

    我来为你详细讲解”项目布局配置:Nosql与PythonWeb-Flask框架组合”的完整攻略。 1. 项目布局配置 在开始项目布局配置之前,需要先确保你已经成功安装Python和Flask框架。项目布局的规划非常重要,下面是一个简单的布局规划: MyWebProject/ ├── app/ │ ├── static/ │ └── templates/ ├─…

    Flask 2023年5月16日
    00
  • 如何部署Flask?(详解版)

    部署前准备 1.准备服务器环境(如 Ubuntu、CentOS等)。 2.安装必要的软件和库,包括 Python、pip、virtualenv、Nginx、Gunicorn等: # 安装 Python 和 pip sudo apt-get update sudo apt-get install python3-pip # 升级 pip pip install…

    Flask 2023年3月13日
    00
  • Flask框架响应、调度方法和蓝图操作实例分析

    Flask是一款基于Werkzeug和Jinja2的轻量级Web框架,具有优雅简洁的代码风格、灵活性和可扩展性。在Flask框架中,响应、调度方法和蓝图操作是非常关键的内容,下面我们将对这三个方面进行详细讲解,并分别给出两个实例进行说明。 Flask框架响应 在Flask框架中,响应是指服务器返回给客户端的数据,Flask框架内置了多种响应类型,如HTML页…

    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
合作推广
合作推广
分享本页
返回顶部