因為一些原因,可能有些時候我們需要在windows機器上部署Flask程序,之前的話,都是直接“ python main.py ” 解決。不過這樣的情況似乎后面不好維護。所以這里整理了一個奇怪而且容易維護的方法。
需要的東西:
- 虛擬環境:避免影響系統的python環境,便於遷移。
- tornado:用tornado架起flask app
- nginx: 反向代理,讓其他機器更容易訪問服務。。(windows server上,直接python main.py ,服務啟動后,其他的機器上有時候訪問不到服務的。可能有地方限制了,但是沒弄明白。)
- srvany:將flask程序注冊到系統服務里。便於維護。
流程:
先假設我們的flask應用已經寫好了。
1. 編寫啟動腳本:
from tornado.wsgi import WSGIContainer
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from run import app
http_server = HTTPServer(WSGIContainer(app))
http_server.listen(5000) #flask默認的端口
IOLoop.instance().start()
寫一個cmd腳本:
D:\pyspace\Flask\Flask_AppBulider\venv\Scripts\python D:\pyspace\Flask\Flask_AppBulider\tj\run.py
2. 使用srvany注冊服務
srvany.exe是Microsoft Windows Resource Kits工具集的一個實用小工具,用於將EXE程序作為Windows服務運行。srvany是其注冊程序的服務外殼,我們可以通過它讓我們的程序以SYSTEM賬戶啟動,或者實現隨機器啟動而自啟動,也可以隱藏不必要的窗口,比如說控制台窗口等等。
下載:
https://wwr.lanzoui.com/iaC6Hubrukd
配置: 新建一個自建服務,配置上上面bat的腳本。啟動方式可以設置為自動啟動或者手動啟動。
啟動和終止程序的話,直接用這個工具找到我們配置好的,啟動或者終止即可。

