当前位置: 首页>移动开发>正文

学习Flask011:tornado与flask

单独运行flask经常死机,安装tornado,配合flask使用。

1.安装tornado

pip install tornado

2.tornado+flask(http访问)

2.1最简单的flask web应用,hello.py代码
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Test Hello World!'

if __name__ == '__main__':
    app.run(host='0.0.0.0',port=5001)
2.2编辑tornado运行程序,tornado_http_server.py代码

对新手来说需要注意的地方:
from hello import app,这里的hellp对应上面的hello.py文件
端口用的是5001,与hello.py文件中的端口相同

from tornado.ioloop import IOLoop
from tornado.wsgi import WSGIContainer
from tornado.httpserver import HTTPServer
from hello import app

http_server=HTTPServer(WSGIContainer(app))
http_server.bind(5001,"0.0.0.0")            # 端口必须与flask端口相同
http_server.start(1)                        # num_processes默认值为1,即默认仅开启一个进程;如果<=0,则自动根据机器硬件的cpu核芯数创建同等数目的子进程;如果>0,则创建num_processes个子进程。
IOLoop.instance().start()
2.3运行tornado程序

运行tornado_http_server.py,就不再需要运行hello.py。可以理解通过tornado调用flask。

python tornado_http_server.py
2.4.访问测试

http://www.kwaili.com:5001

学习Flask011:tornado与flask,第1张
捕获http.PNG

3.tornado+flask(https访问)

前提条件,需要申请ssl证书,申请成功会得到几个证书相关文件,备用(拷贝到项目目录)。

3.1准备好flask web应用文件

app366.py

# 以上代码省略
......

if __name__ == '__main__':
    app.run(host='0.0.0.0',port=5000)
3.2编辑tornado运行程序,tornado_https_server.py代码

监听443端口,即https访问使用的默认端口
应用绑定的端口是5000,与上面app366.py文件中的端口相同
certfile对应的是ssl证书,keyfile对应密钥

import os.path

from tornado.httpserver import HTTPServer
from tornado.wsgi import WSGIContainer
from tornado import ioloop
from app366 import app

def main():

    application = HTTPServer(WSGIContainer(app))  # 文件中的app函数或变量

    server = HTTPServer(application, ssl_options={
        "certfile": os.path.join(os.path.abspath("."), "www.kwaili.com_bundle.crt"),
        "keyfile": os.path.join(os.path.abspath("."), "www.kwaili.com.key")
    })
    application.bind(5000, "0.0.0.0")  # 设置对外开启访问,端口设置为5000,与app366中设置的端口相同
    server.listen(443)
    ioloop.IOLoop.instance().start()

if __name__ == "__main__":
    main()
3.3运行tornado程序

运行tornado_https_server.py,就不再需要运行app366.py。可以理解通过tornado调用flask。

python tornado_https_server.py
3.4.访问测试

https://www.kwaili.com

学习Flask011:tornado与flask,第2张
捕获https.PNG

https://www.xamrdz.com/mobile/4jr1900834.html

相关文章: