注:本文的代码开发工做均是在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安装配置见参考文档。