软硬件环境
- windows 10 64bit
- anaconda3 with python 3.7
- flask 1.1.2
简单异步任务
前言
从Python
3.2开始,标准库为我们提供了concurrent.futures
模块,它提供了ThreadPoolExecutor
(线程池)和ProcessPoolExecutor
(进程池)两个类。使用submit
方法来提交线程(或进程)需要执行的任务到线程(进程)池中,并返回该任务的句柄,submit
不是阻塞的,而是立即返回。通过任务句柄的done()
方法来判断该任务是否结束,通过result()
方法可以获取任务的返回值。
结合concurrent.futures
模块,可以在flask
应用中实现简单异步任务。
代码实现
直接来看代码吧
from flask import Flask
import time
from concurrent.futures import ThreadPoolExecutor
executor = ThreadPoolExecutor(2)
app = Flask(__name__)
@app.route('/tasks')
def run_background_tasks():
# 提交2个任务,一个带参、一个不带参
executor.submit(background_task1)
executor.submit(background_task2, 'hello', 'future')
return 'tasks started in background!'
def background_task1():
print("background_task1 started!")
time.sleep(10)
print("background_task1 done!")
def background_task2(arg1, arg2):
print(f"background_task2 started with args: {arg1} {arg2}!")
time.sleep(5)
print("background_task2 done!")
if __name__ == '__main__':
app.run(host='127.0.0.1', port=5000, debug=True)
复制代码
启动flask
服务后,访问http://127.0.0.1:5000/tasks
,观察终端的打印输出
添加favicon
前言
favicon
是favorites icon
的缩写,是指在网页浏览器显示在标签页或者历史记录里的图标。这个图标能帮助用户将您的网站与其他网站区分开。
图片转icon
favicon
文件的尺寸通常比较小,常见的尺寸有16×16,32×32和48×48。我们准备一张jpg
或者png
的图片,来到在线的转换站点进行转换
flask中如何处理?
我们简单写个flask
应用,这个应该非常熟练了,app.py
内容为
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
app.run()
复制代码
创建模板文件index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}">
<title>Favicon</title>
</head>
<body>
<p>Hello favicon</p>
</body>
</html>
复制代码
然后将转换好的icon
文件放到static
文件夹下,文件名为favicon.ico
最后启动flask
服务后,访问http://127.0.0.1:5000
,在浏览器地址栏左侧就可以看到favicon
了
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END