由于flask本身带有一个测试服务器,所以如果不考虑性能和压力的话,是可以不用使用其他服务器的。以下部署均在服务器上进行。
一.使用测试服务器
以官网所给的例子为例:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
首先,可以把上面的代码命名为test.py,然后先设置好依赖环境python3和flask。
若没有安装python3,在ubuntu下可以使用APT来安装
apt update
apt search python3
python3.X的各个版本的区别不大,所以选用哪一个都可以。这里假设安装的版本是python3.5:
sudo apt install python3.5
加入sudo是为了使用root权限进行操作。
接着可以使用pip3安装flask:
sudo pip3 install flask
如果 对flask的版本有要求的话,可以使用:
sudo pip3 install flask>=1.02
环境配置好了之后,可以先在本地测试一下:
首先,先在终端执行下面的命令,来让flask运行:
python3 test.py &
加入了“&”是用来让这个进程后台运行,以便于一些其他的操作。
执行成功的话则会显示上面的输出,接着可以先测试一下路由函数,在终端输入:
curl localhost:5000
cURL是一个利用URL语法在命令行下工作的文件传输工具,如果显示命令不存在则可以使用APT进行安装。
可以看到控制台打印出了"hello world",这就表示本地可以访问flask。
之后可以让test.py监听所有的IP,先通过kill杀死之前的flask进程:
ps -aux | grep test.py
在我的服务器上python3 test.py的后台进程的PID为25625,那么用:
kill -9 25625
来杀死该进程。
接着修改之前的代码:
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=10000)
上面仅仅是修改了app.run()函数,来使得flask的测试服务器可以接受任何IP地址,并且端口为10000(端口可以随意更改,只需要保证这个端口不被其他进程占用即可)。
接着运行上面的函数,然后如果使用的阿里云,则需要开放10000这个端口,开放端口参考。
然后就可以在浏览器中输入云服务器的IP:10000就可以访问该网站了。
注:在linux下可以使用Ctrl c来关闭前台的进程。
二.nameko的安装
首先,需要安装nameko:
pip3 install nameko
nameko还需要依赖于rabbitMQ-server,rabbitMQ-server在ubuntu下的安装是比较简单的,一个命令就可以搞定:
apt install rabbitmq-server
接着就可以愉快地玩耍了。