群晖NAS中Web Station使用Flask作为后端服务教程
纯白黑鱼
2022年07月09日 12:00
收录于文集
共1篇

〇、先进行准备工作

  • 群晖NAS(DSM7以上)一台,6以下自行尝试;

  • 安装Web Station

  • python安装环境(NAS),且最好安装pip并已设置pip镜像

  • python开发环境(PC)

一、NAS安装Python环境

python在套件中心可以找到,直接安装即可

pip默认未安装,可以通过ssh连接到NAS,然后通过下面命令安装(我没成功)

代码块
Shell
自动换行
复制代码
curl -k https://bootstrap.pypa.io/get-pip.py | python3
复制成功

或者,下载https://bootstrap.pypa.io/get-pip.py,或者使用pc下载后上传到nas

代码块
Shell
自动换行
复制代码
wget https://bootstrap.pypa.io/get-pip.py
复制成功

下载下来之后直接执行,网络通畅的情况下,很快就装好了

代码块
Shell
自动换行
复制代码
python get-pip.py
复制成功

二、安装Web Station,套件中心直接安装即可

显示状态为正常即可;

WebStation状态

三、脚本语言设置:

脚本语言设置

点进去后社编辑模块,默认模块列表是空的,点击浏览上传requirements.txt导入模块,可能需要一点时间,类似venv,pythoner应该知道;

等保存完成,虚拟主机就可以使用这里面包含的模块了

Python模块

模块名显示不正常,版本错位了,但是使用时正常的,可以无视

我的requirements.txt内容,内容仅供参考:

代码块
clike
自动换行
复制代码
click==8.1.3
colorama==0.4.5
Flask==2.1.2
itsdangerous==2.1.2
Jinja2==3.1.2
MarkupSafe==2.1.1
Werkzeug==2.1.2
复制成功

是通过在PC上安装好的环境中使用下面命令提取的

代码块
Shell
自动换行
复制代码
pip freeze > requirements.txt
复制成功

到此为止,准备工作就完成了,下面开始创建

四、创建门户

网页服务门户

图上包含一个我已经创建好的虚拟主机,下面从头创建一个

创建虚拟主机

切换基于端口访问,基于名称的自行尝试

端口设置需要不能和其他应用重复

虚拟主机端口设置

设置服务-默认

这个时候需要设置python代码所在位置、安装了flask的Profile(类似venv)我这边就直接默认的Profile(flask也装默认的里)了,WSGI是flask框架自己集成的,只需要设置flask入口即可,我只做演示,所以从官网复制下来一份教程

设置服务-已设置

app.py的完整路径是:

代码块
Shell
自动换行
复制代码
/web/flask/app.py
复制成功

app.py的内容:

代码块
Python
自动换行
复制代码
from flask import Flask

app = Flask(__name__)


@app.route('/')
def hello_world():
    return 'Hello, World!'


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=9092, debug=True)
复制成功

里面没有其他内容,只有一个hello world!但是要注意的是,代码必须是可运行的,可以在PC上调试好再放到nas下面,代码里面端口好像并不影响

确认设置

其他的默认即可,

访问

访问<NAS_IP>:<PORT>即可访问,也可以点虚拟主机的分享箭头访问

访问

至此,web station的flask已经配置好了,然后就是python代码的内容了,不再详解(我也不会)django应该也是一样的,只用切换app.py内容即可

五、附件:

ipkg安装

代码块
Shell
自动换行
复制代码
# ssh链接到nas上 
sudo -i 
# 输入密码切换root用户权限(linux输入时不会显示防止看到密码位数) 

# 下载包,复制即可 
wget http://ipkg.nslu2-linux.org/feeds/optware/syno-i686/cross/unstable/syno-i686-bootstrap_1.2-7_i686.xsh 
# 增加执行权限,文件名按<TAB>键补全 
chmod +x syno-i686-bootstrap_1.2-7_i686.xshsh  
# 执行 
./syno-i686-bootstrap_1.2-7_i686.xsh 
# 删除下载的包 
rm syno-i686-bootstrap_1.2-7_i686.xsh 
复制成功