亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

PyCharm 支持的 Web 框架

Python 里有很多開發框架用來幫助你輕松創建 Web 應用, 本節主要講述 PyCharm 支持哪些測試框架,以及相關框架基本介紹。

1. Web 框架介紹

Python Web 框架大致分為以下三類:

  • Full-Stack Web 框架:功能非常全面,提供全方案Web開發支持。Django 是典型代表。
  • Non Full-Stack Web 框架:框架相對比較靈活,只完成基本的功能,面向需求簡單,項目周期短的項目。Flask 是典型代表。
  • Asynchronous 異步框架:速度快,I/O性能高,高并發。 Tornado 和 Sanic 都屬于這種框架。純接口服務用的比較多。

PyCharm 專業版對下面的主流 Python 框架提供以下支持:

圖片描述

圖片來源:https://www.jetbrains.com/help/pycharm/python-web-frameworks.html

由圖所示, PyCharm 對 Django 的支持最為全面, Flask and Pyramid 的支持次之, Django and Flask 是現在流行的Web 框架之一。

2. Django

Django是 Full-Stack Web 框架的代表,功能非常全面和成熟,開發文檔很完備。它在Python Web開發框架的占有率應該是第一。Django 的宗旨就是盡可能的提供所有功能,讓你用盡可能少的代碼完成業務

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

  • M Model(數據模型,用于后端數據庫模型定義和處理模塊);
  • T Templates(模版,用于前端顯示信息);
  • V View(視圖,用于接收客戶端請求、處理Model、渲染返回信息給客戶端等)。

優點:

  • 各種組件集成高度成熟,配置齊全;
  • 用戶模型、權限認證體系健全;
  • ORM數據庫管理功能簡單方便;
  • 自帶后臺管理功能。

缺點:
配置相對復雜;
數據庫 ORM 組裝出來的 sql 語句性能較差。

Django安裝

  1. 通過 pip 直接安裝:
pip install Django 
  1. 通過源碼下載并安裝:
git clone https://github.com/django/django.git 

Tips: 我們將在下一節講解如何在 PyCharm 創建基于Django框架的 Web 項目。

3. Flask

3.1 基本介紹

Flask 算是 Non Full-Stack Web 框架代表,是基于 Werkzeug 工具箱編寫的輕量級 Web 開發框架,它在中國的應用其實挺廣的。它主要面向需求簡單,項目周期短的 Web。它的靈活性體現在,它的模塊化設計可以輕松適合開發者的需求。Flask 跟 Django 比起來,你可以自己造輪子,也可以是以插件的形式使用第三方庫。

優點:

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

缺點:

組件高度自定義帶來的就是各種組件之間的兼容性問題嚴重。

Flask 安裝:

pip install flask 

3.2 創建 Flask 項目

PyCharm 創建一個應用程序并生成特定的目錄結構,您可以在 Projec 工具窗口中瀏覽這些結構。除此之外,PyCharm 創建了一個名稱為 app.py Python 腳本。
圖片描述

請注意,應用程序使用以下 Flask 特定變量運行:
FLASK_APP=app.py 定義 Flask 應用程序的入口點 - Flask 類的目標實例。
FLASK_ENV=development 設置環境。
FLASK_DEBUG=0 = 控制內置的 Flask 調試模式。啟用此模式FLASK_DEBUG =1 后,開發服務器將在任何代碼更改時自動重新加載,從而實現持續調試。有關 Flask 調試器的信息,請參閱 Flask 調試模式。

4. Pyramid

4.1 基本介紹

與 Django 一樣都是成熟的 Web 框架, 都是面向大的應用,但是在擴展性和靈活性上走了不同的路。Pyramid 關注靈活性,讓開發者選擇合適的工具來開發項目,這與 Flask 是相似的。

優點:

  • Pyramid 在這三個框架里是最靈活的。它可以用來寫小的應用,它也能來支持像 Dropbox 這樣大名鼎鼎的網站;
  • 支持更多的模板語言。

缺點:

  • 社區活躍率低,學習資料比較少,學習曲線比較陡。

Pyramid 安裝:

 easy_install pyramid

4.2 創建 Pyramid 項目

打開 New Project 窗口, 選擇創建 Pyramid 項目,選擇解釋器,然后點擊 Create:
圖片描述
PyCharm 創建項目、安裝 Pyramid 及其依賴項并生成特定的目錄結構,您可以在Project 工具窗口中瀏覽這些結構。創建項目時,必須運行setup.py以安裝項目進行開發。PyCharm 可能會通知你這樣做,如下圖所示:
圖片描述

5. Tornado

5.1 基本介紹

Tornado 是一個開源的網絡服務器框架,它是基于社交聚合網站 FriendFeed 的實時信息服務開發而來的。Tornado 跟其他主流的 Python Web 服務器框架不同是采用 epoll 非阻塞 IO,響應快速,可處理數千并發連接,特別適用用于實時的 Web 服務。

優點:

  • 完備的 Web 框架;
  • 提供了異步 I/O 支持、超時事件處理;
  • 提供高效的內部 HTTP 服務器;
  • 完備的 WebSocket 支持。

缺點:

  • 沒有 ORM ,提供的支持和模板少,缺少后臺支持,對小型項目來說開發速度沒有 django 快。

安裝

  1. 通過 pip 直接安裝:
pip install Tornado
  1. 通過源碼下載并安裝
$ git clone https://github.com/tornadoweb/tornado
$ cd tornado
$ python setup.py install

5.2 創建 Tornado 服務

Tornado 主要分成四個部分:

  • Web 框架(包括 RequestHandler,用于創建Web程序的基類,以及各種支持類);
  • 實現 HTTP 的客戶端和服務器端 (HTTPServer 和 AsyncHTTPClient);
  • 一個異步網絡庫 (IOLoop 和 IOStream);
  • 一個協程庫(tornado.gen) ,使得異步調用代碼能夠以更直接的方式書寫,取代回調鏈接。

在 Pycharm 里創建一個Python 項目,然后創建新文件添加下面的代碼,就創建了一個最簡單的服務。

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

application = tornado.web.Application([
    (r"/", MainHandler),
])

if __name__ == "__main__":
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

直接運行上面的代碼, 在瀏覽器輸入 http://localhost:8888 , 就會看到 “Hello, world” 顯示在頁面上。

6. Web2Py 與 Google App Engine

Web2Py 與 Google App Engine 這兩種在Python Web 框架中比較小眾,相關的學習資料也比較少,PyCharm 對其支持也并不完全,所以下面只做簡單介紹。

6.1 Web2Py

web2py 是一個為 Python 語言提供的全功能Web應用框架,旨在敏捷快速的開發 Web 應用,具有快速、安全以及可移植的數據庫驅動的應用,兼容 Google App Engine。

創建 Web2Py 時,會自動下載 Web2Py source folder, 但因為下載時間可能比較長,導致下載失敗,
所以可以事先下載source folder, 然后在創建時指定本地目錄。

圖片描述
點擊 create 后, 項目創建成功后,運行項目:
圖片描述

停待幾秒,在彈出框中輸入密碼,然后點擊 start server, Web2Py 網站搭建完成:

圖片描述

Web2py 最大的吸引力在于其內置的開發環境。當設置 Web2py 實例時,將獲得一個 Web 界面,實際上是一個在線 Python 應用程序編輯器,可以在其中配置應用程序的組件。所以你可以通過瀏覽器對你的應用程序進行所有的開發、部署和維護。

6.2 Google App Engine

Google App Engine 提供一整套開發組件來讓用戶輕松地在本地構建和調試網絡應用,之后能讓用戶在Google強大的基礎設施上部署和運行網絡應用程序,并自動根據應用所承受的負載來對應用進行擴展,并免去用戶對應用和服務器等的維護工作。同時提供大量的免費額度和靈活的資費標準。在開發語言方面,支持多種語言,包括Java 、Python、 PHP、 Go 與 Node.js等等。

創建 Google App Engine 項目,事先需要下載 App Engine SDK, 在創建項目時需要指定SDK所在路徑。
圖片描述

Google App Engine 在國內使用是受限制的,需要用 gmail 帳戶注冊與驗證,所以用的不多,這里不再過多介紹。有興趣的同學可以參考官網。

7. 小結

本節主要介紹了主流的 Web 測試框架,以及 PyCharm 對各個框架的支持情況。當下 Django, Flask and Tornado 是應用最多的框架。Django 是企業級框架,著眼于建立完整的大型網站, 功能是最完整的,文檔也是相當完備。

Flask 吸收了其他框架的優點,把主要領域定義在了微小項目上。同時,它是可擴展的。其社區活躍度很高,文檔也比較完備,相對 Django 更容易上手。Tornado 是非阻塞式服務器,速度相當快,常被用作大型站點的接口服務框架。我們可以根據自己的實際工作需要選擇合適的 Web 框架進行項目開發。

圖片描述