想要在Windows Server上部署flask应用,当然不能只下一个anaconda配完环境之后直接启动py文件,这样的话后台会有一段警告:
* Serving Flask app 'app'
* Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:5000
* Running on http://10.0.0.9:5000
Press CTRL+C to quit
意思就是直接使用app.run()开启的服务器只是一个开发服务器,官方提示不要把它放到生产环境,需要使用一个WSGI服务器。
而在Windows上我将使用Waitress进行演示,因为Gunicorn是用在类Unix系统上的,不兼容Windows。
首先在环境中安装Waitress:pip install waitress
接下来在代码中引入waitress的serve模块,改一下之前的app.run()
# py文件开头引入waitress
from waitress import serve
# 将app.run()改为,监听ip和端口自行设置
serve(app, host='0.0.0.0', port=5000)
这样就完成了!然后搞一个批处理文件启动它就行了,还可以放到Windows的自启动目录里,实现开机自启。
start.bat:
@ECHO OFF
:start
title 小竹VPS客户管理系统后端 by SmallBamboo
@echo.开始启动
"E:\Anaconda3\envs\Flask\python.exe" app.py
@echo 服务器后端10秒后自动重启,如不需要重启,请直接关掉
choice /t 10 /d y /n >nul
goto start
pause
自启动目录可以使用Win+R然后输入shell:startup回车打开。把bat文件的快捷方式放进去即可。
当然最后说一句,使用WSGI启动你的Flask应用后,原来的Flask日志就没了,你可以在Flask中使用@app.before_request和@app.after_request重写请求前和请求后的代码,在此获取各种信息然后输出到控制台充当日志。