国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python三大開發(fā)框架django、 flask 和 fastapi 對比

這篇具有很好參考價值的文章主要介紹了python三大開發(fā)框架django、 flask 和 fastapi 對比。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本文講述了什么啟發(fā)了 FastAPI 的誕生,它與其他替代框架的對比,以及從中汲取的經(jīng)驗。
如果不是基于前人的成果,F(xiàn)astAPI 將不會存在。在 FastAPI 之前,前人已經(jīng)創(chuàng)建了許多工具 。
幾年來,我一直在避免創(chuàng)建新框架。首先,我嘗試使用許多不同的框架,插件和工具來解決 FastAPI 涵蓋的所有功能。

但是有時候,沒有更好的辦法,除了創(chuàng)建具有所有這些功能的東西,從以前的工具中汲取最佳創(chuàng)意,并以最佳方式將它們組合起來,使用以前甚至沒有的語言功能(Python 3.6+類型提示)。

啟發(fā)過 FastAPI 的框架

Django

Django 是最流行的 Python 框架,受到廣泛信任。它用于構(gòu)建 Instagram 之類的系統(tǒng)。

它與關(guān)系數(shù)據(jù)庫(例如 MySQL 或 PostgreSQL)相對緊密地結(jié)合在一起,因此,以NoSQL 數(shù)據(jù)庫(例如 Couchbase,MongoDB,Cassandra 等)作為 django 的主存儲引擎并不是一件容易的事。

Django REST Framework

Django REST Framework 是一個非常靈活的框架,用于構(gòu)建 Web API,以改善 Django 的 API 功能。

Mozilla,Red Hat 和 Eventbrite 等許多公司都使用它。

Django REST Framework 是第一個自動生成 API 文檔的框架,自動生成 API 的接口文檔是 FastAPI 框架誕生的緣由之一。

注意

Django REST Framework 框架的作者是 Tom Christie ,Tom Christie 也創(chuàng)造了 Starlette和 Uvicorn。FastAPI 正是建立在 Starlette 和 Uvicorn 的基礎(chǔ)之上。

啟發(fā) FastAPI 地方:有一個自動 API 文檔,Web 用戶界面可供用戶測試。

Flask

Flask 是一種輕量級的框架,它不包括數(shù)據(jù)庫集成,也沒有很多的附帶的功能,雖然這Django 那里是默認(rèn)提供的。

這個簡單性和靈活的特性允許使用 NoSQL 數(shù)據(jù)庫作為主數(shù)據(jù)存儲。盡管文檔在某些方面有所技術(shù)性,但它非常簡單,因此學(xué)習(xí)起來相對直觀。

它還常用于其他不需要數(shù)據(jù)庫,用戶管理或 Django 中預(yù)建功能的應(yīng)用程序。盡管其中許多功能都可以通過添加插件來實現(xiàn)。

各個模塊之前的解耦,使之成為一個“微框架”,可以通過擴(kuò)展為精確地提供所需的東西,這是我想要保留的一項關(guān)鍵功能。

考慮到 Flask 的簡單性,它似乎很適合構(gòu)建 API。接下來要找到的是 Flask的 “ Django REST Framework”。

啟發(fā) FastAPI 地方:成為一個微框架。易于混合和匹配所需的工具和零件。擁有一個簡單易用的路由系統(tǒng)。

Requests

FastAPI 實際上不是 Requests 的替代工具。它們的適用范圍非常不同。實際上,在FastAPI 應(yīng)用程序內(nèi)部使用 Requests 是很常見的。

但是,F(xiàn)astAPI 從 Requests 中獲得了很多啟發(fā)。Requests ?是一個與API(作為客戶端)進(jìn)行交互的庫,而 FastAPI 是一個用于構(gòu)建 API(作為服務(wù)器)的庫。它們或多或少地處于相反的末端,彼此互補(bǔ)。Requests ?具有非常簡單直觀的設(shè)計,非常易于使用,并具有合理的默認(rèn)值。但同時,它非常強(qiáng)大且可自定義。

這就是為什么,如官方網(wǎng)站所述:

Requests 是有史以來下載次數(shù)最多的Python軟件包之一

您的使用方式非常簡單。例如,要發(fā)出GET請求,您可以編寫:

response = requests.get("http://example.com/some/url")

FastAPI 對應(yīng)的 API 路徑操作如下所示:

@app.get("/some/url")
def read_url():
    return {"message": "Hello World"}

它們使用起來的相似之處如?requests.get(…)?和?@app.get(…)。

啟發(fā) FastAPI 地方:

擁有簡單直觀的API。

直接,直觀地使用HTTP方法名稱(操作)。

具有合理的默認(rèn)值,功能強(qiáng)大的自定義。

Swagger / OpenAPI

我想要 Django REST Framework 的主要功能是自動 API 文檔。然后我發(fā)現(xiàn) API 文檔有一個標(biāo)準(zhǔn)叫 Swagger ,它使用 JSON 或 YAML 來描述。

并且 Swagger API 的 Web 用戶界面已經(jīng)被人創(chuàng)建出來了。因此,能夠為 API 生成Swagger 文檔將允許自動使用此 Web 用戶界面。

在某個時候,Swagger 被授予 Linux Foundation,將其重命名為 OpenAPI。這就是為什么在談?wù)摪姹?2.0 時通常會說“ Swagger”,對于版本3+來說是“ OpenAPI”。

啟發(fā) FastAPI 地方:
? 為API規(guī)范采用開放標(biāo)準(zhǔn),而不是使用自定義架構(gòu)。并集成基于標(biāo)準(zhǔn)的用戶界面工具:
? ?Swagger UI
? ReDoc

選擇這兩個是因為它們相當(dāng)受歡迎且穩(wěn)定,但是通過快速搜索,您可以找到數(shù)十個 OpenAPI 的其他替代用戶界面(可以與FastAPI一起使用)。

Flask REST frameworks

有幾個 Flask REST frameworks ,但經(jīng)過調(diào)查和試用,我發(fā)現(xiàn),不少項目都停產(chǎn)或放棄,還存在有一些長期的問題,使得它們并不適合解決前面的問題。

Marshmallow

一個由 API 系統(tǒng)所需的主要功能是數(shù)據(jù)的序列化,就是把數(shù)據(jù)從編程語言中的對象轉(zhuǎn)稱成可以在網(wǎng)絡(luò)上傳輸?shù)膶ο螅热鐢?shù)據(jù)庫中的數(shù)據(jù)轉(zhuǎn)換為 JSON 對象。將 Python 中的datetime 對象轉(zhuǎn)為字符串,等等。

另外一個功能就是數(shù)據(jù)的驗證,確保傳入的參數(shù)是有效的,例如,有些字段是一個 int,類型而不是字符串,這在檢測輸入數(shù)據(jù)是非常有用的。

如果沒有數(shù)據(jù)驗證,你就必須用手工寫代碼來完成所有的檢查。

這兩點功能就是 Marshmallow 所提供的,這些是一個偉大的圖書館,之前我經(jīng)常使用它。

Marshmallow 產(chǎn)生之前 Python 還沒有加入類型提示。因此,定義一個 schema 你需要引入 Marshmallow 特定的 utils 的和類。

啟發(fā) FastAPI 地方:
使用代碼來定義提供的數(shù)據(jù)類型和驗證的 schema,驗證都是自動化的。

FastAPI 使用的框架

Pydantic

Pydantic 是一個庫,基于Python類型提示來定義數(shù)據(jù)驗證,序列化和文檔(使用JSON模式)。這使其非常直觀。它可與 Marshmallow 媲美。盡管在基準(zhǔn)測試中它比Marshmallow 更快。并且由于它基于相同的Python類型提示,因此對編輯器的支持非常棒。

FastAPI 使用它來處理所有數(shù)據(jù)驗證,數(shù)據(jù)序列化和自動模型文檔(基于JSON Schema)。

然后,F(xiàn)astAPI 會獲取該 JSON Schema 數(shù)據(jù)并將其放入OpenAPI 中,除此之外它還會執(zhí)行其他所有操作。

Starlette

Starlette 是一種輕量級的 ASGI 框架/工具包,是構(gòu)建高性能 asyncio 服務(wù)的理想選擇。

它非常簡單直觀。它的設(shè)計易于擴(kuò)展,并具有模塊化組件。

它具有:

  • 令人印象深刻的性能。

  • WebSocket支持。

  • GraphQL支持。

  • 處理中的后臺任務(wù)。

  • 啟動和關(guān)閉事件。

  • 測試基于 requests 的客戶端。

  • CORS,GZip,靜態(tài)文件,流式響應(yīng)。

  • 會話和 Cookie 支持。

  • 100% 的測試覆蓋率。

  • 100% 類型注釋的代碼庫。

  • 零硬依賴性。

Starlette 是目前測試最快的 Python 框架。只有 Uvicorn 超越了它,Uvicorn 不是框架,而是服務(wù)器。

Starlette 提供了所有基本的 Web 微框架功能。但是它不提供自動數(shù)據(jù)驗證,序列化或API 文檔。
這是 FastAPI 在頂部添加的主要內(nèi)容之一,全部基于Python類型提示(使用Pydantic)。以及依賴注入系統(tǒng),安全實用程序,OpenAPI 模式生成等。

技術(shù)細(xì)節(jié):ASGI 是 Django 核心團(tuán)隊成員開發(fā)的新“標(biāo)準(zhǔn)”。盡管他們正在這樣做,但它仍然不是“ Python標(biāo)準(zhǔn)”(PEP)。但是,它已經(jīng)被多種工具用作“標(biāo)準(zhǔn)”。這可以大大提高互操作性,因為您可以將 Uvicorn 切換到任何其他 ASGI 服務(wù)器(例如 Daphne 或 Hypercorn),也可以添加與ASGI兼容的工具,例如 python-socketio。

FastAPI 使用它來處理所有核心 Web 部件。在頂部添加功能。類 FastAPI 本身直接繼承Starlette。因此,使用 Starlette 可以執(zhí)行的任何操作,都可以直接使用 FastAPI 進(jìn)行。
Uvicorn

Uvicorn 是基于 uvloop 和 httptools 構(gòu)建的如閃電般快速的 ASGI 服務(wù)器。它不是Web框架,而是服務(wù)器。例如,它不提供用于按路徑進(jìn)行路由的工具。那是像 Starlette(或FastAPI)這樣的框架可以提供的。它是 Starlette 和 FastAPI 的推薦服務(wù)器。

FastAPI 推薦它為主 Web服務(wù)器運行 FastAPI 應(yīng)用程序。您可以將其與 Gunicorn 結(jié)合使用,以擁有異步多進(jìn)程服務(wù)器。在“ 部署” 部分中查看更多詳細(xì)信息。

最后:下方這份完整的軟件測試視頻教程已經(jīng)整理上傳完成,需要的朋友們可以自行領(lǐng)取【保證100%免費】

django flask,軟件測試,職場經(jīng)驗,程序員,python,django,flask,測試工具,程序人生,軟件測試,自動化測試

軟件測試面試文檔

我們學(xué)習(xí)必然是為了找到高薪的工作,下面這些面試題是來自阿里、騰訊、字節(jié)等一線互聯(lián)網(wǎng)大廠最新的面試資料,并且有字節(jié)大佬給出了權(quán)威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。

django flask,軟件測試,職場經(jīng)驗,程序員,python,django,flask,測試工具,程序人生,軟件測試,自動化測試

全部資料獲取

django flask,軟件測試,職場經(jīng)驗,程序員,python,django,flask,測試工具,程序人生,軟件測試,自動化測試文章來源地址http://www.zghlxwxcb.cn/news/detail-682804.html

到了這里,關(guān)于python三大開發(fā)框架django、 flask 和 fastapi 對比的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • FastAPI 快速學(xué)習(xí)之 Flask 框架對比

    FastAPI 快速學(xué)習(xí)之 Flask 框架對比

    ???????本文主要對 FastAPI 與 Flask 框架進(jìn)行對比,以助快速學(xué)習(xí)。進(jìn)一步了解FastAPI的高級使用方法,可參考 FastAPI官方文檔 。如果對你有幫助,歡迎三連 收藏 點贊 關(guān)注 ?。?! ? ???????Flask作為Python語言中的老牌Web框架,已經(jīng)被應(yīng)用于大量的Python Web開發(fā)項目,其使用

    2024年01月17日
    瀏覽(19)
  • Python web 框架對比:Flask vs Django

    哈嘍大家好,我是咸魚 今天我們從幾個方面來比較一些現(xiàn)在流行的兩個 python web 框架——Flask 和 Django,突出它們的主要特性、優(yōu)缺點和簡單案例 到最后,大家將更好地了解哪個框架更適合自己的特定需求 參考鏈接:https://djangocentral.com/flask-vs-django-selecting-the-perfect-python-web

    2024年02月11日
    瀏覽(32)
  • Python Web開發(fā):Django與Flask框架

    Django和Flask都是Python中非常受歡迎的Web開發(fā)框架。雖然它們都是用于構(gòu)建Web應(yīng)用程序的工具,但它們在設(shè)計理念、使用方式和適用場景等方面存在一些差異。 Django Django是一個“大而全”的框架,遵循MVC設(shè)計模式。它內(nèi)置了很多功能,如ORM(對象關(guān)系映射)、模板引擎、表單處

    2024年02月22日
    瀏覽(20)
  • 軟件測試 | 測試開發(fā) | Django+Celery框架自動化定時任務(wù)開發(fā)

    軟件測試 | 測試開發(fā) | Django+Celery框架自動化定時任務(wù)開發(fā)

    ** 本章介紹使用DjCelery即Django+Celery框架開發(fā)定時任務(wù)功能,在Autotestplat平臺上實現(xiàn)單一接口自動化測試腳本、業(yè)務(wù)場景接口自動化測試腳本、App自動化測試腳本、Web自動化測試腳本等任務(wù)的定時執(zhí)行、調(diào)度、管理等,從而取代Jenkins上的定時執(zhí)行腳本和發(fā)送郵件等功能。** 自動

    2023年04月08日
    瀏覽(28)
  • Flask vs. Django:選擇適合你的Web開發(fā)框架【第134篇—Flask vs. Django】

    Flask vs. Django:選擇適合你的Web開發(fā)框架【第134篇—Flask vs. Django】

    前些天發(fā)現(xiàn)了一個巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家?!军c擊進(jìn)入巨牛的人工智能學(xué)習(xí)網(wǎng)站】。 在選擇一個適合你項目的Web開發(fā)框架時,常常會遇到 Flask 和 Django 這兩個流行的選擇。兩者都有其優(yōu)勢和適用場景,本文將探討它們的特點,

    2024年03月26日
    瀏覽(37)
  • 面試之 Python 框架 Flask、Django、DRF

    面試之 Python 框架 Flask、Django、DRF

    Django:大而全的框架。它的內(nèi)部組件比較多,如 ORM、Admin、中間件、Form、ModelForm、Session、緩存、信號、CSRF等,功能也都很完善。 flask:微型框架,內(nèi)部組件就比較少了,但是有很多第三方組件來擴(kuò)展它,比如 wtform(與django的modelform類似,表單驗證)、flask-sqlalchemy(操作數(shù)

    2024年02月05日
    瀏覽(20)
  • 軟件測試——接口測試框架Flask與測試工具Postman、PyMySQL

    軟件測試——接口測試框架Flask與測試工具Postman、PyMySQL

    什么是Flask: Flask是一個Python Web框架,通常被稱為微框架。它旨在保持應(yīng)用程序的核心簡單且可擴(kuò)展。與其他Web框架不同,F(xiàn)lask沒有用于數(shù)據(jù)庫處理的內(nèi)置抽象層,也沒有形成驗證支持。相反,F(xiàn)lask支持?jǐn)U展以將這些功能添加到應(yīng)用程序中。Flask的優(yōu)勢在于它可以與你珠聯(lián)璧合

    2024年04月13日
    瀏覽(28)
  • Flask or FastAPI? Python服務(wù)端初體驗

    Flask or FastAPI? Python服務(wù)端初體驗

    最近由于工作需要,又去了解了一下簡單的python服務(wù)搭建的相關(guān)工作,主要是為了自己開發(fā)的模型或者工具給同組的人使用。之前介紹的針對于數(shù)據(jù)科學(xué)研究比較友好的一個可以展示的前端框架Streamlit可以說是一個利器。不過,隨著ChatGPT的流行,基于chat的服務(wù)越來越多了起

    2024年02月08日
    瀏覽(26)
  • Python Flask框架-開發(fā)簡單博客-項目布局、應(yīng)用設(shè)置

    Python Flask框架-開發(fā)簡單博客-項目布局、應(yīng)用設(shè)置

    作者:Eason_LYC 悲觀者預(yù)言失敗,十言九中。 樂觀者創(chuàng)造奇跡,一次即可。 一個人的價值,只在于他所擁有的。所以可以不學(xué)無術(shù),但不能一無所有! 技術(shù)領(lǐng)域:WEB安全、網(wǎng)絡(luò)攻防 關(guān)注WEB安全、網(wǎng)絡(luò)攻防。我的專欄文章知識點全面細(xì)致,邏輯清晰、結(jié)合實戰(zhàn),讓你在學(xué)習(xí)路

    2024年02月02日
    瀏覽(52)
  • 基于 Python 的 Flask 框架開發(fā)的在線電影網(wǎng)站系統(tǒng)(附完整源碼)

    基于 Python 的 Flask 框架開發(fā)的在線電影網(wǎng)站系統(tǒng)(附完整源碼)

    今天我給大家分享的是基于Python的Flask框架開發(fā)的在線電影網(wǎng)站系統(tǒng),大家平時需要哪個方面的項目都可以在每篇文章的下面留言,我后續(xù)會在公眾號分享出來。 該項目為基于Python的Flask框架搭建的在線電影網(wǎng)站 項目介紹:網(wǎng)站前端采用HTML5編寫,使用Bootstrap前端開發(fā)框架,后

    2024年02月07日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包