python3.7使用flask处理请求时同步和异步的问题

  • Post author:
  • Post category:python


0.最近在使用flask写个小程序,然后下载的是flask1.0.2版本

查看源码:

在这里插入图片描述

发现threaded默认的是True,网上说默认是False的,不一致。

使用IE浏览器发送请求(chrome发送相同请求每次都是同步处理的,郁闷),测试一下两种情况:

1.单独使用flask

import flask
import json
import time
import _thread


server = flask.Flask(__name__)  # 创建1个Flask实例


# 测试get请求
@server.route('/testget', methods=['get'])
def do_get():
	print(f">>>>{_thread.get_ident()}")
    for i in range(3):
        time.sleep(1)
        print(f">>>这是第{i+1}秒")
    res = {'msg': '这是我开发的第一个get接口', 'msg_code':0}
    print(">>>返回")
    return json.dumps(res, ensure_ascii=False)


if __name__ == '__main__':
    server.run(port=8008, host='172.16.120.250')

不加threaded参数测试发现每次请求打印出来的线程id都不一致,请求是异步处理的

加上threaded=False测试发现每次请求打印出来的线程id都一致,请求是同步处理的

2.给服务器弄个界面

在这里插入图片描述

预想是点击启动然后后台启服务器

由于tkinter和flask冲突,目前是在起一个线程跑的flask:

# 启动flask服务器接收请求
def start_server():
    server.run(port=8008, host=get_host_ip(), threaded=False)


# 另开一个线程启动服务器
def create_thread(start_button):
    _thread.start_new_thread(start_server, ())
    start_button.config(state='disabled')	# 置灰按钮
    close_tk()  # 最小化窗口

不加threaded参数,发现每次请求打印出来的线程id都不一致,请求是异步处理的

加上threaded=False测试发现每次请求打印出来的线程id都一致,请求是同步处理的



版权声明:本文为qq_39089503原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。