今天写了一个单文件的flask小的应用,用于展示之前提到的每日获取bing背景图片列表展示。
如图

flask应用使用虚拟环境vnev下创建app.py文件,这里这个文件的名字很重要,就是gunicorn的配置要用到的。
应用代码如下
from flask import Flask, render_template
from pathlib import Path
import json
path = Path('/home/html/pic')
pic_path_list = list(path.glob('*.jpg'))
pic_list = []
for pic_files in pic_path_list:
pic_list.append(str(pic_files)[15:])
app = Flask(__name__)
@app.route('/')
def hello_world():
return render_template('pic.html', pic_list=pic_list)
代码很烂,大家勿喷,代码逻辑很简单,就是获取文件夹内的多有jpg文件,返回一个列表。
接着就是部署了。
这里重点!
部署需要在虚拟环境下下载gunicorn
pip install gunicron
执行
gunicorn -w 4 -b 0.0.0.0:5000 app:app
这里第一个app是你文件的名字,第二个是应用的名字,即代码里的app=Flask(__name__)里定义的这个app变量。使用工厂模式教程文档说的挺清楚,这就不重复说了。
这还有一个问题就是启动后可以退出终端,程序不会结束的。如果使用flask run --host=0.0.0.0是不能退出终端的。退出服务也会随之终止。
当然可以使用nohup后台执行了。
现在还不会结束掉gunicorn建立的服务,只能通过
ps aux
查询进程
然后kill掉就行了。
