<font id="zqva1"></font>
<rt id="zqva1"></rt>
  • <tt id="zqva1"></tt>
    <cite id="zqva1"></cite>

    <cite id="zqva1"><noscript id="zqva1"></noscript></cite>
      <rp id="zqva1"><meter id="zqva1"></meter></rp>

        <cite id="zqva1"></cite>
          <b id="zqva1"></b>
          <rp id="zqva1"></rp>
          <cite id="zqva1"></cite>

          <rt id="zqva1"></rt>

        1. <rp id="zqva1"></rp>

          常見Python的Web開發框架

          時間:?2020-02-23閱讀:?68標簽:?Python

          在今天,Python里有很多開發框架用來幫助你輕松創建web應用。web開發框架存在的意義就在于可以快速便捷的構建應用,而不用去在意那些沒必要的技術細節(協議、報文、數據結構)。

          到2020年為止,基于Python創建的的web應用已經非常多了,國外知名的有youtube.com、instagram、reditt、國內有知乎、豆瓣等等。這些網站分別用到了不同的web框架來實現的,我們今天會一一講到。


          1. Django

          Django應該是Python最知名、最有代表性的Web框架了。它的名字來自于Django Reinhardt,一位法國作曲家和吉他演奏家。在2000年初有一個報社的兩位程序員為了給報社的報紙開發線上應用,開始用 Python編寫網站,最后把他們的工作總結出一套開源框架,就是今天的Django了。

          Django遵循了MVC開發模式,并將這個模式命名為MTV(MTV模式是Python中獨有的)

          M Model(數據模型,用于后端數據庫模型定義和處理模塊)

          T Templates(模版,用于前端顯示信息)

          V View(視圖,用于接收客戶端請求、處理Model、渲染返回信息給客戶端等)

          (1) Django的優點和缺點

          優點:

          一站式開發解決方案,擰包入住
          各種組件集成高度成熟,配置齊全
          用戶模型、權限認證體系健全
          ORM數據庫管理功能簡單方便
          自帶后臺管理功能

          缺點:

          配置相對復雜
          簡單應用采用Django有一種殺雞用牛刀的感覺

          (2) Django安裝和初始化

          Django下載方式有兩種:

          通過pip直接安裝

          pip install Django==3.0.3 
          

          通過源碼下載并安裝

          git clone https://github.com/django/django.git 
          

          安裝之后通過startproject參數創建一個新的django項目 test_django/

          django-admin.py startproject test_django 
          

          cd test_django進入項目路徑輸入啟動服務命令即可啟動一個最簡單的django服務。

          python manage.py runserver 

          最后訪問下默認路徑 http://127.0.0.1:8000 看看django項目啟動的效果。

          啟動成功,現在可以編寫你的Django代碼了。


          2. Flask

          如果說Django是大而全的方案代表,那么Flask就是小而精的方案代表。

          Flask是基于Werkzeug工具箱編寫的輕量級web開發框架,它主要面向需求簡單,項目周期短的Web小應用。

          Flask這個框架相對比較靈活,核心思想是Flask只完成基本的功能,別的功能都是靠各種第三方插件來完成的,實現了模塊高度化定制。

          (1) 常用的Flask插件如下:

          Flask-SQLalchemy:操作數據庫;
          Flask-migrate:管理遷移數據庫;
          Flask-Mail:郵件;
          Flask-WTF:表單;
          Flask-script:插入腳本;
          Flask-Login:認證用戶狀態;
          Flask-RESTful:開發REST API的工具;
          Flask-Bootstrap:集成前端Twitter Bootstrap框架;
          Flask-Moment:本地化日期和時間;

          Flask的兩個主要核心應用是Werkzeug和模板引擎Jinja,除此以外,別的都是可以自由組裝的,適合有潔癖的程序員。

          (2) Flask優缺點

          優點:

          項目結構和配置簡單
          組件可以自由拆裝
          小項目或臨時性項目比較適用

          缺點:

          組件高度自定義帶來的就是各種組件之間的兼容性問題嚴重大型應用不適合,例如藍圖(blueprint)機制跟Django的url配置比起來其實差得很遠

          (2) Flask安裝

          我們通過pip直接安裝

          pip install flask 
          

          在任意位置新建一個py文件,hello.py 。

          from flask import FlaskFlaskapp = Flask(__name__)@app.route("/")def hello():    return "Hello World!"if __name__ == "__main__":    app.run() 
          

          輸入啟動命令:

          python hello.py* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) 
          

          最后訪問默認地址 http://127.0.0.1:5000 打開flask默認啟動頁面。


          3. Tornado

          嚴格意義上來說Tornado不是一個Web框架,而是一個基于Python實現的異步處理框架,只是自帶了WSGI處理相關的功能。

          tornado和Flask一樣,除了基本的Web處理功能和模版之外,其他功能組件都需要自行拼裝。

          (1) tornado的優缺點

          優點:

          短小精悍,性能比較好,不依賴Python多進程/多線程
          支持異步非阻塞IO處理方式
          支持websocket

          缺點:

          過于精簡,只適用于純接口化服務或者小型網站應用

          (2) Tornado安裝

          同樣使用pip進行安裝。

          pip install tornado 
          

          新建一個hello.py 代碼文件。

          import tornado.webimport tornado.ioloopclass IndexHandler(tornado.web.RequestHandler):    def get(self):        self.write('hello world')if __name__ == '__main__':    # 創建應用對象    app = tornado.web.Application([(r'/',IndexHandler)])    # 綁定監聽端口    app.listen(8888)    # 啟動web程序    tornado.ioloop.IOLoop.current().start() 
          

          最后執行 python hello.py啟動tornado服務,通過http://127.0.0.1:8888訪問初始化頁面

          以上三種是Python開發中經常使用到的Web框架,還有一些不是那么常用的也一并給大家簡單介紹一下。


          4. TurboGears

          據說豆瓣早期就是基于該框架進行開發的。

          TurboGears是在幾個著名的Python項目上組裝搭建起來的一個框架,由SQLAlchemy,WebOb,Repoze,Genshi組成。

          在某種意義上,TurboGears是將多個開源組件粘合在一起。和Django同樣采用MVC架構。

          TurboGears的優點:

          支持聚合
          強大的對象關系映射器
          事務系統支持多數據庫間事務
          多數據庫支持
          以可重用的代碼片段為模板
          具有很多的靈活性,可以對接非標準組件
          支持分片
          模板系統使設計師的設計更輕松


          5. Bottle

          Bottle和Flask一樣,也是一個輕量級的Web開發框架。

          它不依賴于Python標準庫外的任何庫。于2009年被創造出來,它僅由包含模板、路由和一個WSGI抽象層的最小工具開始。對于程序員想尋找一個最輕量級的WSGI服務是一個很好的選擇,用它可以最快速度的創建一個Web服務。

          Bootle優點:

          超輕量級
          內建模板引擎和對Jinja2,Mako和Cheetah的支持


          總結

          今天給大家介紹了各種Python的Web開發框架,我個人常用的框架主要包括Django、Flask、Tornado。別的框架涉獵較少,也是因為流行度和易用性的關系。

          針對于最常用的三種框架,我給大家一個使用建議:

          正式項目、大型項目,確定需要長期開發和維護的項目建議選擇Django,一勞永逸,不用考慮太多。

          小型項目、臨時性的項目,不怕折騰的,可以選擇Flask。

          小型項目、臨時性項目或者一些簡單的接口服務,可以選擇Tornado,因為Tornado天生支持異步,所以很多需要做異步IO服務的也可以選擇Tornado,另外Django3.0之后也開始全面支持異步了,建議大家觀望。

          原文 http://developer.51cto.com/art/202002/611003.htm
          吐血推薦

          1.站長廣告聯盟: 整理了目前主流的廣告聯盟平臺,如果你有流量,可以作為參考選擇適合你的平臺點擊進入...

          2.休閑娛樂: 直播/交友    優惠券領取   網頁游戲   H5游戲

          鏈接: http://www.modern-decoration.com.cn/article/detial/7576

          寫 Python 代碼不可不知的函數式編程技術

          在 Python 中,函數是「頭等公民」(first-class)。也就是說,函數與其他數據類型(如 int)處于平等地位。因而,我們可以將函數賦值給變量,也可以將其作為參數傳入其他函數

          Python 實現單例模式

          而且上面這種方法只有第一次 get_instance() 的時候能給對象傳遞參數,總之有許多弊端。Python 提供了 __new__ 方法正好完美解決了這個問題,再加上鎖,就能實現一個線程安全的單例模式:

          Python 中 3 個不可思議的返回

          Python 字典通過檢查鍵值是否相等和比較哈希值來確定兩個鍵是否相同.具有相同值的不可變對象在Python中始終具有相同的哈希值.注意: 具有不同值的對象也可能具有相同的哈希值(哈希沖突)

          11 個優秀的 Python 編譯器和解釋器

          Python 是一門對初學者友好的編程語言,是一種多用途的、解釋性的和面向對象的高級語言。它擁有非常小的程序集,非常易于學習、閱讀和維護。其解釋器可在Windows、Linux 和 Mac OS 等多種操作系統上使用

          如何選擇異步Web Python框架

          Python在3.4引入了 asyncio 庫,3.6新增了關鍵字 async 和 await ,此后,異步框架迅速發展了起來,性能上能和Node.js比肩,除非是CPU密集型任務,否則沒有理由不適用異步框架

          25個超有用的Python代碼段

          Python是一種通用的高級編程語言。用它可以做許多事,比如開發桌面 GUI 應用程序、網站和 Web 應用程序等。作為一種高級編程語言,Python 還可以讓你通過處理常見的編程任務來專注應用程序的核心功能。

          python實用技巧

          Python 提供了一個直觀的在一行代碼中賦值與交換(變量值)的方法,請參見下面的示例,賦值的右側形成了一個新的元組,左側立即解析(unpack)那個(未被引用的)元組到變量 <x> 和 <y>。

          Python 錯誤和異常

          在編寫代碼的時候,先不管出于什么原因,在運行階段,可能都看到過一些錯誤的信息。這些信息當中(至少)有兩種可區分的錯誤:語法錯誤 和 異常。

          nodejs中怎么調用python函數?

          每種語言都有自己的優勢,互相結合起來各取所長程序執行起來效率更高或者說哪種實現方式較簡單就用哪個,nodejs是利用子進程來調用系統命令或者文件,NodeJS子進程提供了與系統交互的重要接口,其主要API有: 標準輸入

          30個非常實用的Python技巧

          Python 是機器學習最廣泛采用的編程語言,它最重要的優勢在于編程的易用性。如果讀者對基本的 Python 語法已經有一些了解,那么這篇文章可能會給你一些啟發。作者簡單概覽了 30 段代碼,它們都是平常非常實用的技巧

          fly63.com版權所有,內容以共享、參考、研究為目的,不存在任何商業目的。其版權屬原作者所有,如有侵權,請與小編聯系!情況屬實本人將予以刪除!

          文章投稿關于web前端網站點搜索站長推薦網站地圖站長QQ:522607023

          小程序專欄: 土味情話心理測試腦筋急轉彎幽默笑話段子句子語錄成語大全

          国产精品高清视频免费 - 视频 - 在线观看 - 影视资讯 - 唯爱网