日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

常见Python的Web开发框架

發(fā)布時間:2023/10/11 综合教程 95 老码农
生活随笔 收集整理的這篇文章主要介紹了 常见Python的Web开发框架 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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

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

1. Django

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

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

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

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

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

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

優(yōu)點:

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

缺點:

配置相對復(fù)雜
簡單應(yīng)用采用Django有一種殺雞用牛刀的感覺

(2) Django安裝和初始化

Django下載方式有兩種:

通過pip直接安裝

pip install Django==3.0.3 

通過源碼下載并安裝

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

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

django-admin.py startproject test_django 

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

python manage.py runserver 

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

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

2. Flask

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

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

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

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

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

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

(2) Flask優(yōu)缺點

優(yōu)點:

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

缺點:

組件高度自定義帶來的就是各種組件之間的兼容性問題嚴重大型應(yīng)用不適合,例如藍圖(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實現(xiàn)的異步處理框架,只是自帶了WSGI處理相關(guān)的功能。

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

(1) tornado的優(yōu)缺點

優(yōu)點:

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

缺點:

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

(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__':    # 創(chuàng)建應(yīng)用對象    app = tornado.web.Application([(r'/',IndexHandler)])    # 綁定監(jiān)聽端口    app.listen(8888)    # 啟動web程序    tornado.ioloop.IOLoop.current().start() 

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

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

4. TurboGears

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

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

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

TurboGears的優(yōu)點:

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

5. Bottle

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

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

Bootle優(yōu)點:

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

總結(jié)

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

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

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

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

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

總結(jié)

以上是生活随笔為你收集整理的常见Python的Web开发框架的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 无码人妻精品一区二区三区9厂 | 97超在线 | 波多野结衣一二区 | 97视频入口 | 欧美一区二区三区不卡视频 | 国产微拍精品 | 日本丰满肉感bbwbbwbbw | 欧美日韩一区二区不卡 | 色偷偷噜噜噜亚洲男人的天堂 | 日本人妻不卡一区二区三区中文字幕 | 国产极品久久久 | 柠檬av导航 | 久久久久久国产精品日本 | 免费成人深夜小野草 | 黄色网址链接 | 久久香蕉影院 | 黄色三级视频在线观看 | 五月天久久久久久 | 亚洲射射 | 久热精品视频 | а√天堂8资源在线官网 | 九九热超碰 | 国产精品高清在线 | 精品97人妻无码中文永久在线 | 成人在线视频网址 | 成人免费av| 免费在线看黄网址 | 男生插女生的视频 | 国产精品theporn动漫 | 国产热99| 精品人妻一区二区三区三区四区 | 18视频网站在线观看 | 国产精品久久999 | 一级在线免费观看 | 91视频专区 | 91在线免费看片 | 国产精品制服丝袜 | 久久久精品福利 | 91视频专区 | 在线色网址 | 国产精品天天操 | 色婷婷一区二区 | 国产精品白嫩白嫩大学美女 | 日韩伦理大全 | 午夜视 | 国产二区av | 免费在线观看黄网 | 国产白浆在线 | 亚洲一区二区三区三州 | 久久毛片基地 | 久久亚洲一区二区 | 风流僵尸艳片a级 | 黄色一级a毛片 | 婷婷国产一区二区三区 | 欧美性猛交xxx乱大交3蜜桃 | 中文字幕天堂av | 国产精品视频第一页 | 亚洲男人天堂2019 | 日本不卡一区二区三区在线观看 | 二区在线播放 | 日本在线加勒比 | 国产在线视视频有精品 | 久久精品欧美一区二区三区不卡 | 国产精品久久久久久久久久小说 | 亚洲一区福利视频 | 欧美撒尿777hd撒尿 | 国产一区精品视频 | 能看毛片的网站 | 淫视频网站 | 一区二区三区福利视频 | 九色91在线 | 精品久久久久久久久久久久久久久久 | 国产农村老头老太视频 | 公妇借种乱htp109cc | 福利视频大全 | 波多在线播放 | 熟女av一区二区三区 | 午夜视频福利在线 | 国产黄色91 | 国产九色91回来了 | 亚洲国产精品国自产拍av | 91theporn国产在线观看 | 色屋永久 | 97在线免费公开视频 | 国产视频一区二区 | 欧美精品一二三四 | 少妇熟女视频一区二区三区 | 久久亚洲免费视频 | 麻豆天天躁天天揉揉av | 日本一区二区三区在线观看视频 | 激情文学亚洲色图 | 免费看裸体网站视频 | 男人操女人的网站 | 日韩中文字幕网站 | 日本真人做爰免费视频120秒 | 一个人看的毛片 | 国产精品高清无码 | 五月婷婷一区二区 | 男男黄网站 |