python3.7使用flask處理請求時同步和異步的問題

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都一致,請求是同步處理的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章