注:本文的代碼開發工做均是在python3.7環境下完成的。
關鍵詞:python flask tornado webapihtml
參考:
Python3虛擬環境 venv搭建輕量級虛擬環境
關於Python3中venv虛擬環境
Flask框架web開發:零基礎入門
如何在某.py文件中調用其餘.py內的函數
Flask 路由
Flask解決跨域的問題node
python3.3以上的環境中直接提供了venv模塊建立虛擬環境,該模塊代替了原virtualenv,建議直接使用python3最新版本。python
建立一個名爲flask的虛擬環境,系統會建立一個flask文件夾,文件夾中包含了該版本python的依賴環境,裏面有三個include,Lib,Scripts三個子文件夾。nginx
python -m venv flask
進入Scripts文件夾,運行activate.bat激活虛擬環境(deactivate.bat關閉虛擬環境,ps環境中運行Activate.ps1激活)web
activate.bat
激活虛擬環境後,可經過pip安裝flask模塊flask
pip install flask
在flask文件夾同級下,創建APP文件夾,在APP文件夾內新建 run.py 文件,建立一個Hello Word的flask服務,完整代碼以下:windows
from flask import Flask # 引用flask庫 app= Flask(__name__) # 定義路由 @app.route('/') def hello_world(): return 'Hello,World!' if __name__=="__main__": app.run(debug=True,port=8080) # 開啓調試模式,程序訪問端口爲8080
運行 run.pyapi
python run.py
在瀏覽器中訪問:http://127.0.0.1:8080/ ,成功後返回 Hello,World!跨域
參考:
將Flask應用程序部署在nginx,tornado的簡單方法
windowsServer環境下的flask+nginx部署方案
Windows 下Flask Nginx Tornado 協同工做的簡單例子瀏覽器
pip install tornado
在 run.py 同級目錄下建立 tornado_server.py 文件,做用是託管app.py。同時將 app.py 中的端口號去掉,在 tornado_server.py 中定義訪問端口號。 tornado_server.py 代碼以下:
from tornado.wsgi import WSGIContainer from tornado.httpserver import HTTPServer from tornado.ioloop import IOLoop from run import app # 這裏和run.py對應 http_server = HTTPServer(WSGIContainer(app)) http_server.listen(5000) #flask默認的端口 IOLoop.instance().start()
運行 tornado_server.py
python.exe tornado_server.py
若是以前啓動了nginx,在cmd中批量殺死全部nginx進程
taskkill /fi "imagename eq nginx" /f
配置nginx中的反向代理,使其指向tornado_server.py中的地址和端口
server { listen 80;#端口 server_name 123.123.123.123;#公網的ip地址,也能夠是你沒有加www的網址 #charset koi8-r; #access_log logs/host.access.log main; #location /test { # root C:\python\workspace; # index test.html; #} #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # location / { proxy_pass http://localhost:5000;#全部訪問80端口的,都會轉到5000端口 }
啓動 nginx ,訪問ngix提供的80端口
start nginx
方法有幾種,生成環境服務器能夠鏈接互聯網的狀況下,推薦使用requirements.txt方式
pip freeze > requirements.txt
pip install -r requirements.txt
生產服務器中的虛擬環境若是是開發環境的拷貝,最好先pip uninstall -ry requirements.txt,再pip install -r requirements.txt
參考:
使用nssm部署windows服務啓動應用
定時啓動多個cmd的python程序,而且批處理關閉各個程序,一鍵啓動conda虛擬環境和運行多個python
將python腳本文件封裝成bat文件,如 run.bat
E:\develop\py3fcapi\flask\Scripts\activate.bat && python E:\develop\py3fcapi\app\tornado_server.py
利用nssm將bat文件封裝爲windows服務,能夠在生產環境中更好的運行。nssm安裝配置見參考文檔。