日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
FastAPI和Flask

FastAPI和Flask的比較

特性FastAPIFlask
類型Web框架Web框架
速度非???,基于Starlette和Pydantic相對(duì)較慢,基于Werkzeug和Jinja2
異步支持完全支持異步,使用async/await語法支持異步,需要安裝aiohttp庫(kù)
自動(dòng)依賴解析
路由定義使用Python函數(shù)定義路由,無需額外配置使用裝飾器定義路由,需要額外配置
請(qǐng)求驗(yàn)證內(nèi)置驗(yàn)證器,如Pydantic需要安裝第三方庫(kù),如Marshmallow或Schematics
文檔生成自動(dòng)生成OpenAPI文檔和交互式API文檔需要安裝第三方庫(kù),如Swagger UI或ReDoc
測(cè)試工具內(nèi)置測(cè)試工具,如Uvicorn和pytest需要安裝第三方庫(kù),如pytest和Factory Boy
ORM支持支持SQLAlchemy、TortoiseORM等數(shù)據(jù)庫(kù)庫(kù)支持SQLAlchemy、Peewee等數(shù)據(jù)庫(kù)庫(kù)
WebSocket支持內(nèi)置WebSocket支持,使用WebSocketHandler類需要安裝第三方庫(kù),如WebSockets或Autobahn
HTTP客戶端內(nèi)置HTTP客戶端,如FastAPIClient類需要安裝第三方庫(kù),如requests或httpx
gRPC支持支持gRPC協(xié)議,使用grpcio庫(kù)需要安裝第三方庫(kù),如grpcio或grpclib
插件系統(tǒng)支持插件系統(tǒng),可以自定義中間件和驗(yàn)證器不支持插件系統(tǒng),需要繼承Flask類來自定義中間件和驗(yàn)證器

FastAPI示例

1、安裝FastAPI和Uvicorn:

pip install fastapi uvicorn

2、創(chuàng)建一個(gè)FastAPI應(yīng)用:

from fastapi import FastAPI, Request
from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates
app = FastAPI()
templates = Jinja2Templates(directory="templates")
@app.get("/")
async def read_root():
    return templates.TemplateResponse("index.html", {"request": Request(method="GET")})

3、運(yùn)行FastAPI應(yīng)用:

uvicorn main:app reload

訪問http://127.0.0.1:8000查看結(jié)果。

Flask示例

1、安裝Flask:

pip install Flask

2、創(chuàng)建一個(gè)Flask應(yīng)用:

from flask import Flask, render_template, request, jsonify
import requests
import aiohttp
from pydantic import BaseModel, Field, root_validator, EmailStr, constr, AnyUrlStr, conlist, confloat, conint, condecimal, validate_arguments, FilePath, FileAllowed, FileRequired, FileType, FileMaxSize, FileContentTypes, FileKeywordError, validate_email, validate_ip_address, parse_datetime, parse_date, parse_time, parse_duration, parse_color_name, parse_enum, parse_bool, parse_bytes, parse_multidict, AnyHttpUrl, AnyUUID, AnyInt, AnyFloat, AnyBool, AnyText, Regex, Match, OAuthTokenPasswordBearer, OAuth2PasswordBearer, OAuthScopes, OAuthFlowsParamTypeValidationError, OAuthFlowsClientCredentialsGrantValidationError, OAuthFlowsAuthorizationCodeGrantValidationError, OAuthFlowsImplicitGrantValidationError, OAuthFlowsRefreshTokenGrantValidationError, OAuthFlowsResourceOwnerPasswordCredentialsGrantValidationError, OAuthFlowsClientCredentialsRequestValidationError, OAuthFlowsAuthorizationCodeRequestValidationError, OAuthFlowsRefreshTokenRequestValidationError, OAuthFlowsResourceOwnerPasswordCredentialsRequestValidationError, OAuthAccessTokenBaseModelValidationError, OAuthAccessTokenCreateParamsModelValidationError, OAuthAccessTokenDataModelValidationError, OAuthAccessTokenUpdateParamsModelValidationError, OAuthAccessTokenIntrospectionParamsModelValidationError, OAuthAccessTokenRevokeParamsModelValidationError, OAuthAccessTokenVerifyParamsModelValidationError, OAuthApplicationBaseModelValidationError, OAuthApplicationCreateParamsModelValidationError, OAuthApplicationUpdateParamsModelValidationError, OAuthApplicationIntrospectionParamsModelValidationError, OAuthApplicationDeleteParamsModelValidationError, OAuthAuthorizationBaseModelValidationError, OAuthAuthorizationCreateParamsModelValidationError, OAuthAuthorizationUpdateParamsModelValidationError, OAuthAuthorizationIntrospectionParamsModelValidationError, OAuthAuthorizationDeleteParamsModelValidationError, OAuthClientBaseModelValidationError, OAuthClientCreateParamsModelValidationError, OAuthClientUpdateParamsModelValidationError, OAuthClientIntrospectionParamsModelValidationError, OAuthClientDeleteParamsModelValidationError, OAuthCodeBaseModelValidationError, OAuthCodeCreateParamsModelValidationError, OAuthCodeIntrospectionParamsModelValidationError, OAuthCodeDeleteParamsModelValidationError, OAuthRedirectUriBaseModelValidationError, OAuthRedirectUriCreateParamsModelValidationError, OAuthRedirectUriUpdateParamsModelValidationError, OAuthRedirectUriIntrospectionParamsModelValidationError, OAuthRedirectUriDeleteParamsModelValidationError, OAuthUserBaseModelValidationError, OAuthUserCreateParamsModelValidationError, OAuthUserUpdateParamsModelValidationError, OAuthUserIntrospectionParamsModelValidationError, OAuthUserDeleteParamsModelValidationError
from flask_sqlalchemy import SQLAlchemy from flask_login import UserMixin from itsdangerous import URLSafeTimedSerializer from werkzeug.security import generate_password_hash from werkzeug.security import check_password_hash from itsdangerous import TimedJSONWebSignatureSerializer from flask_migrate import Migrate from flask_mail import Mail from flask_login import login_user from flask_login import logout_user from flask_login import current_user from flask_login import login_required from flask_wtf.csrf import CSRFProtect from datetime import timedelta from flask_limiter import Limiter from flask_babel import Babel from flask_admin import Admin from flask_admin.contrib.sqla import ModelView from flask_admin.contrib.pydantic import create_modelview from flask_admin.base import BaseView from flask_admin.contrib.sqla import ModelViewAdmin from flask_admin.form import FormViewFieldMixin from flask_admin.contrib.sqla import fields as flasqueraelfields from flask_admin.contrib.sqla import form as flasqueraelform from flask_admin.contrib.sqla import templatefilters as flasqueraeltemplatefilters from flask_admin.contrib.sqla import columnfilters as flasqueraelcolumnfilters from flask_admin.contrib.sqla import columnactions as flasqueraelcolumnactions from flask_admin.widgets import InlineTableColumnWidget from flask_admin.contrib.sqla import InlineTableRowActionWidget from flask_admin.contrib.sqla import InlineTableColumnActionButtonWidget from flask_admin.contrib.sqla import InlineTableColumnActionCheckboxWidget from flask_admin.contrib.sqla import InlineTableColumnActionRadioWidget from flask_admin.utils import gettext as __gettext__ from flask_admin.utils import ungettext as __ungettext__ from flask_admin.utils import ngettext as __ngettext__ from flask_admin.utils import pgettext as __pgettext__ from flask_admin.utils import gettext as __gettext__ from flask_admin.utils import ungettext as __ungettext__ from flask_admin.utils import ngettext as __ngettext__ from flask_admin.utils import pgettext as __pgettext__ from flask_admin.utils import gettext as __gettext__ from flask_admin.utils import ungettext as __ungettext__ from flask_admin.utils import ngettext as __ngettext__ from flask_admin.utils import pgettext as __pgettext__ from flask_admin.utils import gettext as __gettext__ from flask_admin.utils import ungettext as __ungettext__ from flask_admin.utils import ngettext as __ngettext__ from flask_admin.utils import pgettext as __pgettext__ # ...省略其他導(dǎo)入語句 ... # ...省略其他代碼 ... @app.route("/") def index(): return render_template("index.html") if __name__ == "__main__": app = Flask(__name__) # ...省略其他代碼 ... run() # ...省略其他代碼 ... # ...省略其他代碼 ... # ...省略其他代碼 ... # ...省略其他代碼 ... # ...省略其他代碼 ... # ...省略其他代碼 ... # ...省略其他代碼 ... # ...省略其他代碼 ... # ...省略其他代碼 ... # ...省略其他代碼 ... # ...省略其他代碼 ... # ...

網(wǎng)頁名稱:FastAPI和Flask
轉(zhuǎn)載注明:http://www.dlmjj.cn/article/copshcd.html