
借助AI營銷類API,為產品開發和市場定位提供有力支持
要開始使用Django REST框架,請使用pip安裝Django和Django RESTframework,pip是Python的包安裝程序:
pip install django
pip install djangorestframework
安裝完成后,創建一個目錄來存儲API并移動到該目錄中:
mkdir my-api
cd my-api
使用以下命令生成Django項目:
django-admin startproject my-api
django-admin startapp api
之前的命令創建了一系列文件和嵌套目錄:
my-api/
manage.py
api/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
Django項目包含一個名為 api
的應用程序。如有必要,您的項目可以包含用于不同資源或服務的多個獨立應用程序。請參閱Django官方文檔,了解要更新哪些文件以添加新的路由、視圖和模型。一旦啟動了本地Django項目,就可以開始構建RESTneneneba API。
Flask是一個流行的Python API微框架,具有最小的依賴性。它擁有只需一個文件和幾行代碼就能運行應用程序的能力。例如,一個只有一個“Hello,world!”端點的應用程序可以用以下五行代碼編寫:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
與Django相比,Flask的開箱即用功能要少得多。例如,如果您的Flask應用程序需要HTML模板,則必須配置額外的依賴項。同樣,您必須配置數據庫集成,并在使用Flask時從頭開始創建管理界面。
您可以快速開始使用Flask,并可以對框架的原始設計進行迭代。如果你熟悉Python,你可以學會用較少的前期工作來使用Flask。如果您的團隊用Python開發機器學習模型,您可以使用Flask創建服務來交付ML結果。編寫服務需要最少的學習時間,因為Python在ML項目的兩個領域都有使用。
Flask有大量的文檔和視頻教程。它的大量文檔使Flask相對于類似的微框架具有優勢,因為有很多關于如何使用它的現有信息。
FastAPI是一個更新的web框架,類似于Flask。FastAPI中的單個“Hello,world!”端點可以用以下五行代碼編寫:
from fastapi import FastAPI
app = FastAPI()
@app.get('/')
def hello_world():
return {'Hello' : 'world!'}
由于FastAPI相對較新且使用范圍不如Flask廣泛,所以圍繞它的文檔資源尚未像Flask那樣豐富。然而,FastAPI確實具有一些獨特的操作優勢。FastAPI默認支持異步操作,這意味著開發者在創建端點時無需手動使用async/await模型。這種異步默認行為使得FastAPI能夠在構建API時比Flask或Django具有更低的開銷,從而實現更快的速度。
FastAPI依靠類型提示自動在模型和JSON之間進行序列化。因此,只需很少的代碼就可以實現數據庫模型與JSON響應之間的轉換,如下所示:
class Bird(BaseModel):
name: str
bird_type: str
@app.get('/birds')
def list_birds():
return app.db.all()
與Django一樣,FastAPI為API的端點提供內置文檔,您可以在其中測試請求:
其維護人員提供的文檔非常清晰和完整。FastAPI團隊似乎已經觀察到了其他框架的陷阱,并試圖彌補這些弱點。
此框架是為構建API而設計的。具有用戶界面的Web應用程序不是此庫的目標用例。如果你的應用程序需要大量的界面開發,那么這個框架可能不是正確的選擇。
Bottle是微型框架中自行指定的微型est。整個庫包含一個文件,除了Python本身之外,該文件沒有任何依賴項。Bottle中的“Hello,world!”實現可以用以下三行代碼編寫:
From bottle import run, route
@route(‘/’)
def index():
return ('<h1>Hello, world!</h1>')
當使用Bottle時,任何超出路由定義的東西都需要從頭開始實現或包含另一個依賴項。模板、數據庫集成和異步操作就是這樣。
由于Bottle是相當新的,所以該框架幾乎沒有有機文檔。其維護者提供的文檔雖然內容豐富,但目前缺乏FastAPI文檔的清晰度和可發現性。盡管這個框架由于其極簡主義而成為學生的絕佳選擇,但它缺乏商業應用程序通常需要的多功能性或支持。
如果您想學習如何使用FastAPI框架編寫API,請查看以下指南:
原文鏈接: https://www.linode.com/docs/guides/how-to-choose-python-api-framework/#bottle