1 Ubuntu 概述
根据百度百科的定义,Ubuntu是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的ubuntu一词,意思是【人性】【我的存在是因为大家的存在】,是非洲传统的一种价值观。Ubuntu基于Debian发行版和Gnome桌面环境,打破了用户认为Linux难以安装和使用的刻板印象。Ubuntu对个人使用、组织和企业内部开发使用是免费的。常用的长期支持的版本为:
- Ubuntu 16.04 LTS
- Ubuntu 18.04 LTS
- Ubuntu 20.04 LTS
我们可以从官网进行下载 https://cn.ubuntu.com/download ,官方截图如下所示:
2 Flask 概述
根据百度百科的定义,Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。Flask也被称为"MicroFramework" ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。
下面给出Flask 构建的一个简单的Web应用,kz_run.py 代码如下所示:
from flask import Flask from flask import render_template,Response,request app = Flask(__name__,static_folder='static',static_url_path='/static') app.config['JSON_AS_ASCII'] = False HOST = "0.0.0.0" PORT = 9000 route('/', methods=['POST','GET']) .def token(): ret = {"access_token":"29ebc277-964a-411b-b551-04e5d3b4f6c8", "token_type":"md5", "expires_in":23342, "scope": "server", "org_name": "Demo of Org" } return ret if __name__ == '__main__': app.debug = True app.run(host=HOST,port=PORT) # pip install flask
3 Ubuntu开机执行脚本设置
这里我们选用Ubutnu 20.04 LTS版本的操作系统,首先登陆操作系统,然后执行如下命令查看python相关版本和安装位置信息:
下面执行 pip show flask 命令,查看flask包安装路径 (/usr/local/lib/python3.8/dist-packages):
# pip show flask Name: Flask Version: 2.0.2 Summary: A simple framework for building complex web applications. Home-page: https://palletsprojects.com/p/flask Author: Armin Ronacher Author-email: armin.ronacher@active-4.com License: BSD-3-Clause Location: /usr/local/lib/python3.8/dist-packages Requires: click, itsdangerous, Jinja2, Werkzeug Required-by: Flask-APScheduler
执行 vim /etc/systemd/system/kz-ms.service , 编辑 kz-ms.service 服务脚本,内容如下所示:
[Unit] Description=Flask Web Service [Service] WorkingDirectory=/home/<user>/ ExecStart=/home/kz_boot.sh User=<user> Environment="PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.8/dist-packages" TimeoutSec=0 RemainAfterExit=yes [Install] WantedBy=multi-user.target
注意: WorkingDirectory=/home// 中的参数 根据实际情况来定,且目录要存在。 kz_boot.sh 脚本内容如下所示:
nohup python3 /home/web-flask/kz_run.py &
并且给与执行权限:
chmod +x /home/kz_boot.sh
下面设置服务和启动服务,命令如下所示:
# 重新载入 systemctl daemon-reload # 启用服务 kz-ms.service systemctl enable kz-ms.service # 开启服务 kz-ms.service systemctl start kz-ms.service # 查看状态 kz-ms.service systemctl status kz-ms.service # 停止服务 kz-ms.service systemctl stop kz-ms.service # 重启服务 kz-ms.service systemctl restart kz-ms.service
成功启动服务如下所示:
此时打开浏览器,输入Flask web 网址,则可以访问API,示意如下所示:
reboot 重启测试,看是否可以自动启动服务。