5 つの主要な非同期 Python フレームワークを紹介します。すぐに学習してください。

Python は 3.4 で asyncio ライブラリを導入し、3.6 でキーワード async と await を追加しました。それ以来、非同期フレームワークは急速に発展し、そのパフォーマンスは Node.js に匹敵します。CPU を集中的に使用するタスクでない限り、非同期フレームワークを使用しない理由。

Web 開発者であれば、非同期 Web フレームワークに関してより多くの選択肢が得られるようになりました。

1、トルネード

Tornado は決して新しいフレームワークではなく、もともとは FriendFeed (後に Facebook に買収) によって 2009 年にリリースされました。非同期プログラミング機能は最初から提供されています。
ここに画像の説明を挿入します

Tornado は Web フレームワークであるだけでなく、非同期アプリケーションを自分で構築するために使用できる非同期モジュールが多数組み込まれています。これらのモジュールには次のものが含まれます。

  • コルーチンとその他のプリミティブ (tornado.gen、tornado.locks、tornado.queues など)
  • ネットワークモジュール (tornado.ioloop、tornado.iostream)
  • 非同期サーバーとクライアント (tornado.httpserver、httpclient など)

これらのモジュールを通じて、Tornado は独自の非同期 Web フレームワーク モジュールを構築します。

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

def make_app():
    return tornado.web.Application([
        (r"/", MainHandler),
    ])

if __name__ == "__main__":
    app = make_app()
    app.listen(8888)
    tornado.ioloop.IOLoop.current().start()

Tornado は Python コミュニティで多くのファンを獲得しており、経験豊富なアーキテクトは Tornado を使用して強力なシステムを構築しています。このフレームワークは長い間同時実行の問題を解決してきましたが、WSGI 標準をサポートしていないため (ほとんどの Python ライブラリはまだ同期しています)、まだ主流になっていません。

中国では志湖は唐蘭島を基にして造られたと言われています。

2、おやつ

Sanic は 3 年間誕生したフレームワークです。Python バージョン 3.6 以降のみをサポートし、一般的な async/await 構文をサポートし、すぐに使えるため、多くのドキュメントを読まなくても HTTP プロセッサを作成できます。
ここに画像の説明を挿入します
async キーワードを除いて、構文は flask と同じです。

from sanic import Sanic
from sanic.response import json

app = Sanic()

@app.route("/")
async def test(request):
    return json({
    
    "hello": "world"})

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8000)

Sanic はおそらく、Python の世界で最も人気があり、人気のある非同期フレームワークです。プロジェクトに必要な機能がすべて揃っています: ルーティング、ミドルウェア、Cookie、バージョン管理、ブループリント、クラスベースのビュー、静的ファイル、ストリーム、ソケットに加えて、テンプレート、データベース ドライバー、ファイル I/O、キューなどを統合できます。 。

3、ビボラ

Vibora は、Sanic と同様に、最速の Python Web サーバーになることを目指しています。同社のウェブサイトのトップページにフレーム比較表があります。

ここに画像の説明を挿入します

Vibora は、他のフレームワークよりも数倍高速であり、競合他社である Sanic よりも 2 倍以上高速であると主張しています。もちろん、このベンチマークは割り引いて考えてください。
Vibora は構文と機能の点で Sanic に匹敵しますが、Sanic は長い間存在しており、より大きなコミュニティがあるため、より成熟していると思います。

from vibora import Vibora, JsonResponse

app = Vibora()

@app.route('/')
async def home():
    return JsonResponse({
    
    'hello': 'world'})

if __name__ == '__main__':
    app.run(host="0.0.0.0", port=8000)

4、クォート

Flask が好きだが非同期サポートもサポートしたい場合は、間違いなく Quart を気に入るでしょう。
ここに画像の説明を挿入します

Quart は、WSGI 標準の後継である ASGI 標準に準拠しており、非同期サポートを提供します。Quart は Flask に似ているだけでなく、Flask API とも互換性があります。フレームワークの作成者は、Flask の特徴を維持し、それに非同期、WebSocket、および HTTP 2 のサポートだけを追加したいと考えています。したがって、Quart の使用方法は Flask ドキュメントから学ぶことができます。ただし、Quart の関数は非同期であることに注意してください。

from quart import Quart

app = Quart(__name__)

@app.route('/')
async def hello():
    return 'hello'

app.run()

Flask とほぼ同じ
Quart は Flask から進化したため、ルーティング、ミドルウェア、セッション、テンプレート、ブループリントなど、Flask のすべての機能が利用可能です。実際、Quart 内で直接 Flask 拡張機能を使用することもできます。ただし、1 つ問題は、Python 3.7 以降のみをサポートしていることです。

5、高速API

FastAPI は、非同期 Python フレームワークの中で最も機能が豊富で文書化されているようです。
ここに画像の説明を挿入します

このフレームワークの作成者は、Django から Sanic などの最新のフレームワーク、さらには NestJS (Node.js、Typescript Web フレームワーク) まで、他のいくつかのフレームワークを詳しく調査しています。
この構文は、これまでに出会った他のフレームワークよりも興味深いとさえ言えます。

rom fastapi import FastAPI

app = FastAPI()

@app.get("/users/me")
async def read_user_me():
    return {
    
    "user_id": "the current user"}

@app.get("/users/{user_id}")
async def read_user(user_id: str):
    return {
    
    "user_id": user_id}

FastAPI が他のフレームワークに勝る切り札は、API ドキュメントを自動的に生成することです。API
インターフェイスを作成した後、SwaggerUI、ReDoc などの標準準拠の UI を使用して API を使用できます。

ここに画像の説明を挿入します

パフォーマンスについてはどうですか?FastAPI は Starlette ライブラリに基づいて構築されており、そのパフォーマンスは Node、場合によっては Go にも匹敵します。全体として、FastAPI が Python の非同期フレームワークのトップになるだろうと私は本当に感じています。

要約する

最近、Python 非同期エコシステムでは多くのことが起こっています。新しいフレームワークが出現し、古いフレームワークが書き直され、多くのライブラリが非同期動作をサポートし始めています。Web フレームワークの場合、Python は優れたパフォーマンスを提供する準備ができています。Node または Go への移行を長い間考えていた場合、今すぐ移行する必要はありません。

Python を学ぶ前に、Python に関する情報をまとめて CSDN 公式にアップロードしました。Python に関する他の知識を学びたい友人がいる場合は、以下の QR コードをスキャンして入手できます。

1.Python学習概要

Python の全方位の技術要点を各分野の知識をまとめて整理しており、上記の知識に応じて対応する学習リソースを見つけることができ、より包括的に学習できる点が便利です。
ここに画像の説明を挿入します

2. Python の必須開発ツール

ここに画像の説明を挿入します

3. 入門学習ビデオ

ここに画像の説明を挿入します

4. 実践事例

光学理論は役に立ちません。学んだことを実際に適用するには、それに従って練習する必要があります。このとき、いくつかの実際の事例から学ぶことができます。
ここに画像の説明を挿入します

5. Python副業のパートタイムルートとフルタイムルート

ここに画像の説明を挿入します

6. インターネット企業の面接での質問

高収入の仕事を見つけるには Python を学ばなければなりません。以下の面接の質問は、アリババ、テンセント、バイトなどの一流インターネット企業からの最新の面接資料であり、アリババの上司が権威ある回答をしています。面接情報に基づいて、誰もが満足のいく仕事を見つけることができると思います。
ここに画像の説明を挿入します

ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/Z987421/article/details/132876466