1、python脚本做些小工具很实用
2、通过web浏览器的方式随时随地可以操作,非常方便
3、用网页做界面,比那个老古董tkinter轻松太多了
4、最大问题是普通网页请求发出后,要等脚本执行完毕才返回结果,中间状态无法看到,而且等候时间可能很长。---->用SSE(Server Sent Events)可以轻松解决这个问题,你脚本print到屏幕上的,sse都能实时推送到网页前端。
5、使用SSE一点都不复杂,Django内置的StreamingHttpResponse就能直接推送,无需额外配置。
以下是一端运行在终端环境的脚本,其功能是执行一系列任务,期间把一些中间状态信息打印到屏幕。我们尝试把这个脚本迁移到web上。
# 为了方便理解,我把任务都用random.randint(1, 100)来模拟代替
# 此处print全部放在logger中是考虑通用性,如果看得不舒服,可以直接搜索self.log.info替换为print即可
# -*-coding: utf-8 -*-
import random,time
class Logger():
def info(self,msg):
print(msg)
class MyTaskProcessor():
def __init__(self):
self.log = Logger()
def task1(self):
msg1 = random.randint(1, 100)
self.log.info(msg1)
msg2 = random.randint(1, 100)
self.log.info(msg2)
result = msg1 + msg2
return result
def task2(self):
msg1 = random.randint(1, 100)
sel