成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一網(wǎng)打盡,匯總常見(jiàn)Python的Web開(kāi)發(fā)框架

開(kāi)發(fā) 架構(gòu)
今天給大家介紹了各種Python的Web開(kāi)發(fā)框架,我個(gè)人常用的框架主要包括Django、Flask、Tornado。別的框架涉獵較少,也是因?yàn)榱餍卸群鸵子眯缘年P(guān)系。

在今天,Python里有很多開(kāi)發(fā)框架用來(lái)幫助你輕松創(chuàng)建web應(yīng)用。web開(kāi)發(fā)框架存在的意義就在于可以快速便捷的構(gòu)建應(yīng)用,而不用去在意那些沒(méi)必要的技術(shù)細(xì)節(jié)(協(xié)議、報(bào)文、數(shù)據(jù)結(jié)構(gòu))。

到2020年為止,基于Python創(chuàng)建的的web應(yīng)用已經(jīng)非常多了,國(guó)外知名的有youtube.com、instagram、reditt、國(guó)內(nèi)有知乎、豆瓣等等。這些網(wǎng)站分別用到了不同的web框架來(lái)實(shí)現(xiàn)的,我們今天會(huì)一一講到。

[[315686]]

1. Django

一網(wǎng)打盡,匯總常見(jiàn)Python的Web開(kāi)發(fā)框架

Django應(yīng)該是Python最知名、最有代表性的Web框架了。它的名字來(lái)自于Django Reinhardt,一位法國(guó)作曲家和吉他演奏家。在2000年初有一個(gè)報(bào)社的兩位程序員為了給報(bào)社的報(bào)紙開(kāi)發(fā)線上應(yīng)用,開(kāi)始用 Python編寫(xiě)網(wǎng)站,最后把他們的工作總結(jié)出一套開(kāi)源框架,就是今天的Django了。

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

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

(1) Django的優(yōu)點(diǎn)和缺點(diǎn)

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

  • 一站式開(kāi)發(fā)解決方案,擰包入住
  • 各種組件集成高度成熟,配置齊全
  • 用戶模型、權(quán)限認(rèn)證體系健全
  • ORM數(shù)據(jù)庫(kù)管理功能簡(jiǎn)單方便
  • 自帶后臺(tái)管理功能

缺點(diǎn):

  • 配置相對(duì)復(fù)雜
  • 簡(jiǎn)單應(yīng)用采用Django有一種殺雞用牛刀的感覺(jué)

(2) Django安裝和初始化

Django下載方式有兩種:

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

安裝之后通過(guò)startproject參數(shù)創(chuàng)建一個(gè)新的django項(xiàng)目 test_django/

  1. django-admin.py startproject test_django 

cd test_django進(jìn)入項(xiàng)目路徑輸入啟動(dòng)服務(wù)命令即可啟動(dòng)一個(gè)最簡(jiǎn)單的django服務(wù)。

  1. python manage.py runserver 

一網(wǎng)打盡,匯總常見(jiàn)Python的Web開(kāi)發(fā)框架

最后訪問(wèn)下默認(rèn)路徑 http://127.0.0.1:8000 看看django項(xiàng)目啟動(dòng)的效果。

一網(wǎng)打盡,匯總常見(jiàn)Python的Web開(kāi)發(fā)框架

啟動(dòng)成功,現(xiàn)在可以編寫(xiě)你的Django代碼了。

2. Flask

一網(wǎng)打盡,匯總常見(jiàn)Python的Web開(kāi)發(fā)框架

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

Flask是基于Werkzeug工具箱編寫(xiě)的輕量級(jí)web開(kāi)發(fā)框架,它主要面向需求簡(jiǎn)單,項(xiàng)目周期短的Web小應(yīng)用。

Flask這個(gè)框架相對(duì)比較靈活,核心思想是Flask只完成基本的功能,別的功能都是靠各種第三方插件來(lái)完成的,實(shí)現(xiàn)了模塊高度化定制。

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

  • Flask-SQLalchemy:操作數(shù)據(jù)庫(kù);
  • Flask-migrate:管理遷移數(shù)據(jù)庫(kù);
  • Flask-Mail:郵件;
  • Flask-WTF:表單;
  • Flask-script:插入腳本;
  • Flask-Login:認(rèn)證用戶狀態(tài);
  • Flask-RESTful:開(kāi)發(fā)REST API的工具;
  • Flask-Bootstrap:集成前端Twitter Bootstrap框架;
  • Flask-Moment:本地化日期和時(shí)間;

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

(2) Flask優(yōu)缺點(diǎn)

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

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

缺點(diǎn):

  • 組件高度自定義帶來(lái)的就是各種組件之間的兼容性問(wèn)題嚴(yán)重大型應(yīng)用不適合,例如藍(lán)圖(blueprint)機(jī)制跟Django的url配置比起來(lái)其實(shí)差得很遠(yuǎn)

(2) Flask安裝

我們通過(guò)pip直接安裝

  1. pip install flask 

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

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

輸入啟動(dòng)命令:

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

最后訪問(wèn)默認(rèn)地址 http://127.0.0.1:5000 打開(kāi)flask默認(rèn)啟動(dòng)頁(yè)面。

一網(wǎng)打盡,匯總常見(jiàn)Python的Web開(kāi)發(fā)框架

3. Tornado

一網(wǎng)打盡,匯總常見(jiàn)Python的Web開(kāi)發(fā)框架

嚴(yán)格意義上來(lái)說(shuō)Tornado不是一個(gè)Web框架,而是一個(gè)基于Python實(shí)現(xiàn)的異步處理框架,只是自帶了WSGI處理相關(guān)的功能。

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

(1) tornado的優(yōu)缺點(diǎn)

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

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

缺點(diǎn):

  • 過(guò)于精簡(jiǎn),只適用于純接口化服務(wù)或者小型網(wǎng)站應(yīng)用

(2) Tornado安裝

同樣使用pip進(jìn)行安裝。

  1. pip install tornado 

新建一個(gè)hello.py 代碼文件。

  1. import tornado.webimport tornado.ioloopclass IndexHandler(tornado.web.RequestHandler):    def get(self):        self.write('hello world')if __name__ == '__main__':    # 創(chuàng)建應(yīng)用對(duì)象    app = tornado.web.Application([(r'/',IndexHandler)])    # 綁定監(jiān)聽(tīng)端口    app.listen(8888)    # 啟動(dòng)web程序    tornado.ioloop.IOLoop.current().start() 

最后執(zhí)行 python hello.py啟動(dòng)tornado服務(wù),通過(guò)http://127.0.0.1:8888訪問(wèn)初始化頁(yè)面

一網(wǎng)打盡,匯總常見(jiàn)Python的Web開(kāi)發(fā)框架

以上三種是Python開(kāi)發(fā)中經(jīng)常使用到的Web框架,還有一些不是那么常用的也一并給大家簡(jiǎn)單介紹一下。

4. TurboGears

[[315692]]

據(jù)說(shuō)豆瓣早期就是基于該框架進(jìn)行開(kāi)發(fā)的。

TurboGears是在幾個(gè)著名的Python項(xiàng)目上組裝搭建起來(lái)的一個(gè)框架,由SQLAlchemy,WebOb,Repoze,Genshi組成。

在某種意義上,TurboGears是將多個(gè)開(kāi)源組件粘合在一起。和Django同樣采用MVC架構(gòu)。

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

  • 支持聚合
  • 強(qiáng)大的對(duì)象關(guān)系映射器
  • 事務(wù)系統(tǒng)支持多數(shù)據(jù)庫(kù)間事務(wù)
  • 多數(shù)據(jù)庫(kù)支持
  • 以可重用的代碼片段為模板
  • 具有很多的靈活性,可以對(duì)接非標(biāo)準(zhǔn)組件
  • 支持分片
  • 模板系統(tǒng)使設(shè)計(jì)師的設(shè)計(jì)更輕松

5. Bottle

[[315693]]

Bottle和Flask一樣,也是一個(gè)輕量級(jí)的Web開(kāi)發(fā)框架。

它不依賴于Python標(biāo)準(zhǔn)庫(kù)外的任何庫(kù)。于2009年被創(chuàng)造出來(lái),它僅由包含模板、路由和一個(gè)WSGI抽象層的最小工具開(kāi)始。對(duì)于程序員想尋找一個(gè)最輕量級(jí)的WSGI服務(wù)是一個(gè)很好的選擇,用它可以最快速度的創(chuàng)建一個(gè)Web服務(wù)。

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

  • 超輕量級(jí)
  • 內(nèi)建模板引擎和對(duì)Jinja2,Mako和Cheetah的支持

總結(jié)

今天給大家介紹了各種Python的Web開(kāi)發(fā)框架,我個(gè)人常用的框架主要包括Django、Flask、Tornado。別的框架涉獵較少,也是因?yàn)榱餍卸群鸵子眯缘年P(guān)系。

針對(duì)于最常用的三種框架,我給大家一個(gè)使用建議:

  • 正式項(xiàng)目、大型項(xiàng)目,確定需要長(zhǎng)期開(kāi)發(fā)和維護(hù)的項(xiàng)目建議選擇Django,一勞永逸,不用考慮太多。
  • 小型項(xiàng)目、臨時(shí)性的項(xiàng)目,不怕折騰的,可以選擇Flask。
  • 小型項(xiàng)目、臨時(shí)性項(xiàng)目或者一些簡(jiǎn)單的接口服務(wù),可以選擇Tornado,因?yàn)門(mén)ornado天生支持異步,所以很多需要做異步IO服務(wù)的也可以選擇Tornado,另外Django3.0之后也開(kāi)始全面支持異步了,建議大家觀望。 

 

責(zé)任編輯:趙寧寧 來(lái)源: 今日頭條
相關(guān)推薦

2024-04-26 00:25:52

Rust語(yǔ)法生命周期

2021-08-05 06:54:05

流程控制default

2024-04-07 08:41:34

2024-02-27 10:11:36

前端CSS@規(guī)則

2021-10-11 07:55:42

瀏覽器語(yǔ)法Webpack

2024-08-26 10:01:50

2024-06-12 00:00:05

2013-08-02 10:52:10

Android UI控件

2010-08-25 01:59:00

2011-12-02 09:22:23

網(wǎng)絡(luò)管理NetQos

2024-02-23 08:14:01

項(xiàng)目開(kāi)發(fā)Spring

2023-04-06 09:08:41

BPM流程引擎

2013-10-16 14:18:02

工具圖像處理

2019-07-24 15:30:00

SQL注入數(shù)據(jù)庫(kù)

2024-06-24 12:51:50

2014-07-01 09:34:48

Android工具SDK

2023-09-26 00:29:40

CSS布局標(biāo)簽

2020-10-19 06:43:53

Redis腳本原子

2009-04-02 10:17:00

交換機(jī)產(chǎn)品選購(gòu)

2023-04-03 08:30:54

項(xiàng)目源碼操作流程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 精品一区二区三区在线观看 | 另类专区成人 | 欧美日韩a | 中文字幕一区二区三区精彩视频 | 欧美午夜一区二区三区免费大片 | 国产成人精品在线 | 91成人在线视频 | 日韩国产精品一区二区三区 | 久久国产高清视频 | 狠狠色香婷婷久久亚洲精品 | 亚洲男人天堂网 | 亚洲国产一区二区三区四区 | 精品久久精品 | 麻豆视频在线免费看 | 国产粉嫩尤物极品99综合精品 | 久久成人精品 | 日本超碰在线 | 免费看a| 欧美性猛交一区二区三区精品 | 中文字幕日韩欧美一区二区三区 | 久久com | 中文字幕一区二区三区四区五区 | 999久久久 | 九色在线视频 | 国产一区二区日韩 | 亚洲国产精品一区二区三区 | 久久精品一区 | 黄色骚片 | 欧美高清视频一区 | 亚洲女人天堂成人av在线 | 日本人做爰大片免费观看一老师 | 在线免费观看a级片 | 伊人国产精品 | 国外激情av | 国产一区二区三区四区在线观看 | 国产a区| 一级黄色在线 | 久久精品成人 | 国产又爽又黄的视频 | 国产精品色 | 羞羞色视频 |