如何快速地把你的 Python 程式碼變成 API
提到API 開發,你可能會想到Django REST Framework,Flask,FastAPI,沒錯,它們完全可以用來寫API,不過,今天分享的這個框架可以讓你更快把現有的函數轉化為API,它就是Sanic。
Sanic 簡介
Sanic[1],是 Python3.7 Web 伺服器和 Web 框架,旨在提高效能。它允許使用 Python3.5 中添加的 async/await 語法,這可以有效避免阻塞從而達到提升響應速度的目的。 Sanic致力於提供一種簡單且快速,集創建和啟動於一體的方法,來實現一個易於修改和拓展的HTTP 服務,Sanic 具備開箱即用的功能,它可以用於編寫,部署和擴展生產級Web 應用程式。目前 Github 有 16.3k 的星星,有廣泛的社區支持。
有以下特性:
- 內建極速web server
- 生產準備就緒
- 極高的拓展性
- 支持ASGI
- 簡單直覺的API 設計
- 社群保障
- 如何快速將現有程式碼轉換為API
現在讓我們看,如何將程式碼轉換成API,假如有已經在functions.py 寫好的兩個函數:
import datetime def get_datetime(): return datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") def sum_x_y(x, y): return x + y
轉換成API 只要再寫一個sanic_app.py :
from sanic import Sanic, json from functions import get_datetime, sum_x_y app = Sanic("CodeToAPI") HOST = "localhost" PORT = 8000 @app.route("/getdatetime") async def getdatetime(request): return json({"now": get_datetime()}) @app.get('/sumxy') async def sumxy(request): parameters = request.args result = sum_x_y(int(parameters['x'][0]), int(parameters['y'][0])) return json({'result': result}) if __name__ == "__main__": app.run(host=HOST, port=PORT, debug=False)
然後,只需要執行python sanic_app.py 就可以啟動API 服務:
從運行結果可以得知,sanic 已經運行在生產環境模式,這與其他Web 框架不同,其他框架帶有一個內建的開發伺服器,並明確表示它只用於開發。而 Sanic 的情況則剛好相反,內建的伺服器可以直接用於生產環境。
可以用curl 進行介面測試:
❯ curl "http://localhost:8000/getdatetime" {"now":"2022-07-25 06:34:25"}%❯ curl "http://localhost:8000/sumxy?x=12&y=34" {"result":46}%
如果用post,且使用json 傳參,也是簡單的:
@app.post('/sumxy') async def sumxy(request): parameters = request.json print(parameters) result = sum_x_y(int(parameters['x']), int(parameters['y'])) return json({'result': result})
curl 這樣測試:
❯ curl -X 'POST' 'http://localhost:8000/sumxy' -H "Content-Type: application/json" -d '{"x":10,"y":20}' {"result":30}%
部署在其他
Sanic 除了自帶的伺服器(大多數情況推薦自帶的伺服器用於生產),同樣相容於ASGI。這意味著您可以使用您喜歡的 ASGI 伺服器來運行 Sanic。現在有三大主流的 ASGI 伺服器,Daphne、Uvicorn (FastAPI 用的就是這個)、Hypercorn。
也可以部署在Gunicorn:
gunicorn myapp:app --bind 0.0.0.0:1337 --worker-class sanic.worker.GunicornWorker
靜態檔案的處理,及記錄請求存取日誌,又想獲得更好的效能,可以考慮使用Nginx 作為代理,讓Nginx 來處理訪問日誌和靜態文件,這種方式比用Python 處理快得多。
#以上是如何快速地把你的 Python 程式碼變成 API的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。
