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

為什么選擇學習 Sanic 框架

開發 開發工具
Sanic 會被看作是為 Flask 應用帶來 async/await 風格編程的一種嘗試。雖然這可能是最初的概念驗證的一個公平的觀點,但 Sanic 在一個非常不同的道路上發展,其目標和影響是成為一個為性能應用設計的強大工具。

Web Server 和框架

Sanic 稱自己既是一個網絡框架,也是一個網絡服務器。這是什么意思?更重要的是,為什么這很重要?

那么什么是 Web Server?

Web Server

Web服務器是一種軟件,旨在通過 HTTP 協議傳遞文檔和數據。它的功能是接受傳入的 HTTP 請求,對消息進行解碼以了解請求試圖完成的任務,并提供適當的響應。Web 服務器的語言是 HTTP 協議。

我們可以設置一個簡單的Sanic服務器,然后從 curl 發出請求,并查看消息。

  1. 創建一個server.py 文件,寫入如下代碼:

圖片

from sanic import Sanic, text, Request

app = Sanic(__name__)


@app.post("/")
async def handler(request: Request):
message = (
request.head + b'\n\n' + request.body
).decode("utf-8")

print(message)
return text("Done")

app.run(port=8088, debug=True)
  1. 執行sanic server.app ,運行該服務器
  2. 打開另一個終端,運行curl localhost:8088 -d '{"foo": "bar"}' 語句,能看到如下輸出:

圖片

然后回到另一個終端,能看到 HTTP 請求消息,如下內容:

POST / HTTP/1.1
Host: localhost:8088
User-Agent: curl/7.68.0
Accept: */*
Content-Length: 14
Content-Type: application/x-www-form-urlencoded

{"foo": "bar"}
  • 第一行包含 HTTP 方法、路徑和使用的 HTTP 協議
  • 接下來是 HTTP 頭的列表,每行一個,格式為key:value
  • 最后是 HTTP 正文,前面有一個空行。HTTP 響應非常相似:
HTTP/1.1 200 OK
content-length: 4
connection: keep-alive
content-type: text/plain; charset=utf-8
Done
  • 第一行包含 HTTP 協議,然后是 HTTP 狀態和狀態描述
  • 接下來是 HTTP 頭的列表,每行一個,格式為 key:value
  • 最后是HTTP正文(如果有),前面有一個空行。

圖片

雖然這是 Web 服務器的語言,但編寫所有這些內容非常麻煩。因此,Web 瀏覽器和 HTTP 客戶端庫等工具被創建來為我們構建和解析這些消息。

Web 框架

當然,我們可以用 Python 編寫一個程序,接收這些原始 HTTP 消息,對它們進行解碼,然后返回一個適當的 HTTP 響應消息。然而,這將需要大量的文件,難以擴展,并且容易出錯。

有一些工具可以幫我們做到這一點:Web框架。Web 框架的工作是構建 HTTP 消息并適當地處理請求。許多框架通過提供便利和實用程序來進一步簡化流程。

Python 生態系統中有許多 Web 框架在不同程度上完成了這項工作。有些提供了大量的功能,有些則非常稀少。有些非常嚴格,有些則更加開放。Sanic 只在不妨礙開發人員的情況下,才嘗試保持功能豐富的連續性。

Sanic提供的一個功能是,它既是一個 Web 框架,也是一個 Web 服務器。Web 框架做的就是有一個服務器調用一個輸入函數,向其傳遞有關請求的信息,并得到響應。

async/await 風格的協程處理程序的項目,絕大多數都需要運行一個ASGI服務器。它遵循一個類似的模式:一個ASGI就緒的服務器調用一個ASGI就緒的框架。

這兩個組件使用一個特定的協議相互操作。目前有三種流行的ASGI服務器:uvicorn、hypercorn和daphne。

Sanic

正因為 Sanic 誕生于 ASGI 之前的時代,它需要自己的服務器。隨著時間的推移,這已經成為它最大的資產之一,并且在很大程度上是它勝過其他大多數 Python 框架的原因。Sanic 服務器的開發非常注重性能和請求/響應周期的最小化。然而,近年來 Sanic 也采用了 ASGI 接口,使其能夠由 ASGI 網絡服務器運行。

Sanic 具備開箱即用的功能,它可以用于編寫,部署和擴展生產級 Web 應用程序。

為什么選擇 Sanic 框架學習呢?官方給出了 6 個原因:

特征(Features)

  • 內置極速 web server
  • 生產準備就緒
  • 極高的拓展性
  • 支持 ASGI
  • 簡單直觀的 API 設計
  • 社區保障

總結

Sanic 會被看作是為 Flask 應用帶來 async/await 風格編程的一種嘗試。雖然這可能是最初的概念驗證的一個公平的觀點,但 Sanic 在一個非常不同的道路上發展,其目標和影響是成為一個為性能應用設計的強大工具。

因此,Sanic 通常被那些希望建立一個豐富環境的開發者和團隊所使用,以解決他們的應用需求所要求的獨特的、明顯的設計模式。該項目的意圖是消除構建網絡服務器的困難或繁瑣部分,并提供工具來創建高性能和可擴展的網絡應用。

責任編輯:武曉燕 來源: 宇宙之一粟
相關推薦

2011-11-28 10:21:52

Nginx特性

2012-05-15 15:44:00

Silverlight

2021-04-25 10:26:34

Python機器學習人工智能

2012-09-26 10:02:44

框架開發項目

2012-02-28 09:11:51

語言Lua

2009-12-21 17:11:38

Linux認證

2009-06-25 15:09:34

選擇JSFESRI

2020-06-10 09:06:48

MongoDB架構高可用

2013-10-22 15:18:19

2016-08-19 16:27:52

數據庫Mongo DB開發

2017-02-27 15:19:04

2012-11-14 20:55:07

容錯服務器選型CIO

2022-02-07 23:05:11

tailwindcsCSS框架

2011-04-14 09:30:15

集合框架

2023-03-21 08:02:36

Redis6.0IO多線程

2015-10-08 16:53:51

IaaSPaaS云應用

2015-02-11 10:22:25

對象存儲云共享S3存儲

2021-04-06 11:07:02

字節跳動組織架構

2016-09-27 21:25:08

Go語言Ken Thompso

2021-02-01 07:20:51

KafkaPulsar搜索
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美综合一区 | 欧美日韩一区二区在线观看 | 一级在线观看 | 精品美女在线观看视频在线观看 | 精品一区二区三区免费视频 | 免费在线观看91 | 国产视频一区二区 | 在线成人免费观看 | 欧美日本在线观看 | 亚洲国产精品区 | 欧美三区视频 | 欧美一区视频 | 免费三级网 | 天天插天天射天天干 | 亚洲丝袜天堂 | 久久久久久免费毛片精品 | 免费在线观看一区二区 | 久久久婷 | 婷婷丁香综合网 | 91精品国产91久久综合桃花 | 午夜天堂| 欧美video| 免费黄色的视频 | 九九免费视频 | 99视频久 | 波多野结衣中文字幕一区二区三区 | 成人国产精品久久 | 国产剧情一区二区三区 | 日本午夜精品一区二区三区 | 怡红院怡春院一级毛片 | 国产一区精品在线 | 久草热在线 | 中文字幕精品一区二区三区精品 | 午夜免费视频 | 国产成人久久精品一区二区三区 | 国产精品久久久久久久久久久久久久 | 亚洲国产精品久久久久婷婷老年 | 国产精品高清在线 | 国产成人av在线播放 | 7777奇米影视| 一区二区三区免费 |