<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          怎樣部署Flask服務(wù)?使用Gevent快速改造成高性能服務(wù)器

          共 1122字,需瀏覽 3分鐘

           ·

          2021-02-03 00:21

          當(dāng)開發(fā)完了Flask的Web服務(wù),怎樣部署一個(gè)Web服務(wù)?

          有三種方法:

          1. 直接app.run啟動(dòng)服務(wù),但是這個(gè)方式啟動(dòng)的服務(wù)性能很低,單線程;
          2. uwsgi服務(wù)器,可以支持多進(jìn)程+多線程+多協(xié)程的方式,性能最好,但是部署麻煩;
          3. gevent的pywsgi模塊,可以很簡(jiǎn)單的把單線程改造成單線程異步,性能很好

          本文就介紹下第3種方式,只需要幾行代碼就能改造成高性能的flask服務(wù)器

          原生的Flask服務(wù)器性能很低

          啟動(dòng)一個(gè)最簡(jiǎn)單的Flask服務(wù),只需要這幾行代碼:

          from?flask?import?Flask

          app?=?Flask(__name__)


          @app.route("/")
          def?index():
          ????return?"success"


          if?__name__?==?"__main__":
          ????app.run()

          然而這樣啟動(dòng)的是一個(gè)單線程性能低的服務(wù)器;

          使用gevent的pywsgi模塊做異步化改造

          首先需要安裝gevent模塊,用pip安裝即可:

          pip?install?gevent

          然后就可以對(duì)Flask的代碼做改造,大家可以對(duì)比下區(qū)別:

          from?gevent?import?monkey

          monkey.patch_all()

          from?flask?import?Flask
          from?gevent?import?pywsgi

          app?=?Flask(__name__)


          @app.route("/")
          def?index():
          ????return?"success"


          if?__name__?==?"__main__":
          ????#?app.run()
          ????server?=?pywsgi.WSGIServer(
          ????????("0.0.0.0",?8888),?app)
          ????server.serve_forever()

          通過簡(jiǎn)單的改造,這樣的就是一個(gè)單線程異步的服務(wù)器,能滿足大部分的性能需求了。

          Gevent庫(kù)的簡(jiǎn)單介紹和原理

          Gevent是Python非常好用的第三方異步編程庫(kù),是一個(gè)基于微線程庫(kù)Greenlet的并發(fā)框架。

          Gevnet原理:提供猴子補(bǔ)丁MonkeyPatch方法,通過該方法gevent能夠 修改標(biāo)準(zhǔn)庫(kù)里面大部分的阻塞式系統(tǒng)調(diào)用,包括socket、ssl、threading和?select等模塊,而變?yōu)閰f(xié)作式運(yùn)行


          ? ?最后,安利下我自己的Python Flask Web開發(fā)視頻系列



          瀏覽 280
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费操逼黄片 | 免费在线一级黄色电影网站 | 性爱乱伦视频 | 亚洲琪琪 | 叼嘿视频久久久 |