惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

人人都是产品经理
人人都是产品经理
有赞技术团队
有赞技术团队
WordPress大学
WordPress大学
月光博客
月光博客
T
Tailwind CSS Blog
阮一峰的网络日志
阮一峰的网络日志
小众软件
小众软件
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Last Week in AI
Last Week in AI
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
罗磊的独立博客
Jina AI
Jina AI
酷 壳 – CoolShell
酷 壳 – CoolShell
宝玉的分享
宝玉的分享
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
量子位
雷峰网
雷峰网
Apple Machine Learning Research
Apple Machine Learning Research
美团技术团队
博客园 - 聂微东
V
V2EX

轶哥博客

blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog
blog
2023-02-28 · via 轶哥博客

实现预览:

scheduledrequestschatgpt.png

B站视频: https://www.bilibili.com/video/BV1u84y1E79f/?share_source=copy_web&vd_source=de30ad927aff7c4075790b558eb50e56

代码仓库:https://github.com/yi-ge/scheduled-requests

中文描述:

使用python3实现一个定时请求服务,要求如下:

1、数据库使用sqlite3,代码中需要处理数据库初始化,数据库存储的内容可能存在中文。

2、python使用flask监听8848端口。

3、首页返回html内容,页面内容使用中文,使用bootstrap美化页面。页面中使用jquery的ajax实现用户登陆、退出、展示任务列表的功能,后端对应实现/api/login(登陆成功后使用jwt生成token返回前端,前端收到token后存储到localStorage)、/api/logout接口,同时编写三个需要token认证(token通过header传递)的POST接口实现/api/add、/api/remove,/api/list,分别用于添加任务、移除任务、展示任务列表。添加任务时需要输入任务URL、请求方式(GET/POST)、请求参数(如果是POST请求则可以选择body类型为json、x-www-form-urlencoded),同时可以选择定时方式——cron类型或固定时间间隔,如果用户选择cron类型则需要输入cron表达式,如果选择固定时间间隔,则需要输入数字秒。

4、进入页面的时候判断是否是否已经登陆(localStorage中是否存在token),如果存在则显示任务界面,否则显示登录界面。

5、前端与后端所有的交互需要使用json格式。

6、在python启动的时候,通过SQL查询所有的任务,加载任务到APScheduler,按照任务要求的间隔或cron时间定时执行对应方法及以对应参数请求对应的URL。

7、在任务执行失败的情况下进行错误处理。

8、默认账户密码为:admin、admin。

请实现完整的python代码。

ChatGPT对该系统的介绍:

这个系统是一个定时请求服务,可以帮助用户定时请求指定的URL,并根据用户的需求设置不同的请求方式、请求参数、定时方式和定时规则。同时,该系统支持用户添加、删除和查询任务列表,具有很高的可定制性和易用性。

系统采用了Python3作为开发语言,使用Flask作为Web框架,SQLite3作为数据库存储,使用了Bootstrap和Font Awesome等前端框架和插件进行页面美化和交互。系统在启动时会自动加载所有任务,并根据任务的定时方式和规则定时执行请求任务。如果任务执行失败,系统还会进行错误处理。

用户首先需要登录系统才能使用系统的功能。登录成功后,用户可以进入任务列表页面,该页面会显示所有已经添加的任务信息,包括任务ID、请求的URL、请求方式、请求参数、时间间隔/Cron表达式、上次执行时间、下次执行时间、任务状态和操作(删除)。用户可以通过任务列表页面添加、删除和查询任务。

用户添加任务时,需要指定请求的URL、请求方式、请求参数以及定时方式和规则。定时方式有两种:时间间隔和Cron表达式。如果用户选择时间间隔,需要输入一个数字表示请求的时间间隔,单位为秒;如果用户选择Cron表达式,需要输入符合Cron规则的表达式。系统会根据用户输入的定时规则自动执行请求任务,并将请求结果存储到数据库中。

除了添加任务,用户还可以删除任务。删除任务时需要选择要删除的任务,并进行确认。在任务执行失败时,系统会进行错误处理,并在页面上提示用户错误信息。

总的来说,这个系统具有很高的可定制性和易用性,用户可以根据自己的需求添加、删除和查询任务,并根据不同的需求设置不同的请求方式、请求参数、定时方式和规则。该系统对于需要定时请求任务的用户非常实用,可以帮助用户省去手动定时请求任务的麻烦,提高工作效率。