
如何使用 node.js 和 express 創建 rest api
在 RESTful API 中,不同的 HTTP 方法表示不同的操作:
在發送請求時,HTTP 請求正文中可以包含一個可選的數據有效載荷,通常以 JSON 格式編碼。服務器接收請求后會進行處理,并將結果格式化為響應返回。
在開始之前,您需要確保已安裝以下工具和環境:
-Python3.x
virtualenv
虛擬環境工具使用以下命令安裝 virtualenv
:
pip3installvirtualenv
創建虛擬環境并激活:
virtualenvpyEnv-ppython3
sourcepyEnv/bin/activate
安裝 Flask 框架:
pip3installflask
確認所有依賴項已正確安裝:
pipfreeze
app.py
的文件。在 app.py
中編寫以下代碼:
fromflaskimportFlask,request,jsonify
app = Flask(__name__)
@app.route(‘/hello’,methods=[‘GET’])
def hello_world():
returnjsonify({"message":"Hello,World!"})
if name == ‘main‘:
app.run(debug=True)
3. 運行應用程序:
```bash
pythonapp.py
在終端中,您將看到 Flask 提供的調試模式 URL,您可以通過瀏覽器訪問該 URL 來測試應用程序。
為了存儲和管理數據,我們將使用 SQLite 數據庫。SQLite 是一個輕量級的嵌入式數據庫管理系統,適合快速開發和測試。
創建一個名為 db.py
的文件,并添加以下代碼:
importsqlite3
def db_connection():
conn=None
try:
conn=sqlite3.connect("events.sqlite")
exceptsqlite3.Errorase:
print(e)
returnconn
初始化數據庫表:
conn=sqlite3.connect("events.sqlite")
[cursor](http://www.dlbhg.com/provider/uid20241129965408092c70)=conn.cursor()
sql_query = """
CREATETABLEIFNOTEXISTSevents(
idINTEGERPRIMARYKEY,
event_type TEXT NOT NULL,
event_name TEXT NOT NULL
)
"""
cursor.execute(sql_query)
conn.commit()
conn.close()
在 app.py
中添加以下代碼以實現基本的 GET 和 POST 操作:
from flask import Flask, request, jsonify
import sqlite3
app = Flask(__name__)
def db_connection():
conn = None
try:
conn = sqlite3.connect("events.sqlite")
except sqlite3.Error as e:
print(e)
return conn
@app.route('/events', methods=['GET', 'POST'])
def events():
conn = db_connection()
cursor = conn.cursor()
if request.method == 'GET':
cursor.execute("SELECT * FROM events")
events = [
dict(id=row[0], event_type=row[1], event_name=row[2])
for row in cursor.fetchall()
]
return jsonify(events)
if request.method == 'POST':
new_event = request.get_json()
sql = """INSERT INTO events (event_type, event_name) VALUES (?, ?)"""
cursor.execute(sql, (new_event["event_type"], new_event["event_name"]))
conn.commit()
return jsonify(new_event), 201
通過本文,您學習了如何使用 Flask 構建一個簡單的 RESTful API,包括環境配置、數據庫集成以及實現基本的 GET 和 POST 操作。接下來,您可以嘗試擴展 API 功能,例如添加 PUT 和 DELETE 方法,或集成更復雜的數據庫操作。
祝您開發順利!
原文鏈接: https://cto.ai/blog/building-a-restful-api-with-python/