第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程

PyCharm 編輯器教程

PyCharm 數(shù)據(jù)庫工具
PyCharm 的數(shù)據(jù)庫工具

PyCharm 支持的 Web 框架

Python 里有很多開發(fā)框架用來幫助你輕松創(chuàng)建 Web 應(yīng)用, 本節(jié)主要講述 PyCharm 支持哪些測試框架,以及相關(guān)框架基本介紹。

1. Web 框架介紹

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

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

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

圖片描述

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

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

2. Django

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

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

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

優(yōu)點:

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

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

Django安裝

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

Tips: 我們將在下一節(jié)講解如何在 PyCharm 創(chuàng)建基于Django框架的 Web 項目。

3. Flask

3.1 基本介紹

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

優(yōu)點:

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

缺點:

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

Flask 安裝:

pip install flask 

3.2 創(chuàng)建 Flask 項目

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

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

4. Pyramid

4.1 基本介紹

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

優(yōu)點:

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

缺點:

  • 社區(qū)活躍率低,學(xué)習(xí)資料比較少,學(xué)習(xí)曲線比較陡。

Pyramid 安裝:

 easy_install pyramid

4.2 創(chuàng)建 Pyramid 項目

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

5. Tornado

5.1 基本介紹

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

優(yōu)點:

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

缺點:

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

安裝

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

5.2 創(chuàng)建 Tornado 服務(wù)

Tornado 主要分成四個部分:

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

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

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 框架中比較小眾,相關(guān)的學(xué)習(xí)資料也比較少,PyCharm 對其支持也并不完全,所以下面只做簡單介紹。

6.1 Web2Py

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

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

圖片描述
點擊 create 后, 項目創(chuàng)建成功后,運行項目:
圖片描述

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

圖片描述

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

6.2 Google App Engine

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

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

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

7. 小結(jié)

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

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

圖片描述