【Python】在Windows Server上部署Flask后端服务器

发布于:2024-05-09 ⋅ 阅读:(44) ⋅ 点赞:(0)

想要在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的自启动目录里,实现开机自启。

1714895398899.webp

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重写请求前和请求后的代码,在此获取各种信息然后输出到控制台充当日志。