学习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

捕获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

捕获https.PNG

tornado配置https访问搞了好久,如果觉得对你有用,点个赞,谢谢!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容