咱們都知道,flask不支持異步非阻塞的請求,咱們能夠建立一個新項目去測試一下,推薦你們使用pycharm去開發咱們的flask 使用特別的方便。python
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,第二個正常返回,git
咱們試着用瀏覽器訪問下。github
咱們能夠看到,這個時候我去訪問第一個視圖,一直處於加載中,這個時候我去訪問第二個視圖,也是處於一直加載中,那麼咱們怎麼去修改呢,其實flask
咱們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()
修改後的代碼以下,咱們能夠試着去請求下。app
咱們能夠看到,當咱們第一個阻塞住的時候,咱們能夠正常的去訪問咱們第二個路由異步
那麼咱們這樣就能夠實現咱們異步的非阻塞的flask,學習
能夠運用到實際的工做中。測試
推薦一個gevent學習的博客https://softlns.github.io/2015/11/28/python-gevent/spa
世上本沒有路,走多了變有路。
做者寄語:
前進的道路咱們充滿着迷茫,
前進的每一步咱們都會有收穫。
路在腳下,咱們決定不了咱們的出身,可是咱們能夠努力改變咱們將來。
告別昨天失敗的本身,努力拼搏今天,成就美好明天
QQ:952943386 email:leileili126@163.com qq羣:194704520 新羣:683894834