?
我們都知道,flask不支持異步非阻塞的請求,我們可以創建一個新項目去測試一下,推薦大家使用pycharm去開發我們的flask ?使用特別的方便。
rom flask import Flask
import time
app = Flask(__name__)
@app.route('/')
def hello_world():time.sleep(10)return 'Hello World!'@app.route('/index')
def beijing():return 'Beijing'
if __name__ == '__main__':app.run()
這樣我們實現了一個簡單的;flask代碼,我們讓第一個視圖休眠10s,第二個正常返回,
我們試著用瀏覽器訪問下。
我們可以看到,這個時候我去訪問第一個視圖,一直處于加載中,這個時候我去訪問第二個視圖,也是處于一直加載中,那么我們怎么去修改呢,其實
我們gevent庫就可以幫助我們去解決這個問題
from flask import Flask from gevent.pywsgi import WSGIServer from gevent import monkey import time monkey.patch_all() app = Flask(__name__) @app.route('/') def hello_world():time.sleep(10)return 'Hello World!'@app.route('/index') def beijing():return 'Beijing' if __name__ == '__main__':http_server = WSGIServer(('127.0.0.1', 5000), app)http_server.serve_forever()
修改后的代碼如下,我們可以試著去請求下。
我們可以看到,當我們第一個阻塞住的時候,我們可以正常的去訪問我們第二個路由
?
那么我們這樣就可以實現我們異步的非阻塞的flask,
可以運用到實際的工作中。
推薦一個gevent學習的博客https://softlns.github.io/2015/11/28/python-gevent/
世上本沒有路,走多了變有路。
作者寄語:
前進的道路我們充滿著迷茫,
前進的每一步我們都會有收獲。
路在腳下,我們決定不了我們的出身,但是我們可以努力改變我們未來。
告別昨天失敗的自己,努力拼搏今天,成就美好明天
?
QQ:952943386 email:leileili126@163.com? qq群:194704520? 新群:683894834
?