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

全部開(kāi)發(fā)者教程

PyCharm 編輯器教程

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

PyCharm 支持的 Web 框架

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

1. Web 框架介紹

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

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

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

圖片描述

圖片來(lái)源:https://www.jetbrains.com/help/pycharm/python-web-frameworks.html

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

2. Django

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

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

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

優(yōu)點(diǎn):

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

缺點(diǎn):
配置相對(duì)復(fù)雜;
數(shù)據(jù)庫(kù) ORM 組裝出來(lái)的 sql 語(yǔ)句性能較差。

Django安裝

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

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

3. Flask

3.1 基本介紹

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

優(yōu)點(diǎn):

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

缺點(diǎn):

組件高度自定義帶來(lái)的就是各種組件之間的兼容性問(wèn)題嚴(yán)重。

Flask 安裝:

pip install flask 

3.2 創(chuàng)建 Flask 項(xiàng)目

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

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

4. Pyramid

4.1 基本介紹

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

優(yōu)點(diǎn):

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

缺點(diǎn):

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

Pyramid 安裝:

 easy_install pyramid

4.2 創(chuàng)建 Pyramid 項(xiàng)目

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

5. Tornado

5.1 基本介紹

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

優(yōu)點(diǎn):

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

缺點(diǎn):

  • 沒(méi)有 ORM ,提供的支持和模板少,缺少后臺(tái)支持,對(duì)小型項(xiàng)目來(lái)說(shuō)開(kāi)發(fā)速度沒(méi)有 django 快。

安裝

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

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

Tornado 主要分成四個(gè)部分:

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

在 Pycharm 里創(chuàng)建一個(gè)Python 項(xiàng)目,然后創(chuàng)建新文件添加下面的代碼,就創(chuàng)建了一個(gè)最簡(jiǎn)單的服務(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()

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

6. Web2Py 與 Google App Engine

Web2Py 與 Google App Engine 這兩種在Python Web 框架中比較小眾,相關(guān)的學(xué)習(xí)資料也比較少,PyCharm 對(duì)其支持也并不完全,所以下面只做簡(jiǎn)單介紹。

6.1 Web2Py

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

創(chuàng)建 Web2Py 時(shí),會(huì)自動(dòng)下載 Web2Py source folder, 但因?yàn)橄螺d時(shí)間可能比較長(zhǎng),導(dǎo)致下載失敗,
所以可以事先下載source folder, 然后在創(chuàng)建時(shí)指定本地目錄。

圖片描述
點(diǎn)擊 create 后, 項(xiàng)目創(chuàng)建成功后,運(yùn)行項(xiàng)目:
圖片描述

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

圖片描述

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

6.2 Google App Engine

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

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

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

7. 小結(jié)

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

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

圖片描述