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