主要内容Q?/strong>
要用Python FastAPI与PostgreSQLq行增删Ҏ(gu)操作Q?zhn)需要安装以下模块:(x) 1. fastapiQ用于创建Web API 2. uvicornQ用于运行W(xu)eb API 3. psycopg2Q用于与PostgreSQL数据库交?接下来,我们演C如何用Python FastAPI和PostgreSQLq行增删Ҏ(gu)操作?首先Q我们需要创Z个连接到PostgreSQL数据库的函数。?zhn)需要将数据库连接信息更改ؓ(f)(zhn)自?的:(x)
import psycopg2
def create_conn():
conn = psycopg2.connect(
host="localhost",
database="mydatabase",
user="myuser",
password="mypassword",
port="5432"
)
return conn
接下来,我们创Z个FastAPI应用E序q用该函数来连接到PostgreSQL数据库:(x)
from fastapi import FastAPI
app = FastAPI()
@app.on_event("startup")
async def startup():
app.state.conn = create_conn()
@app.on_event("shutdown")
async def shutdown():
app.state.conn.close()
现在我们已经建立?jin)连接,接下来我们将创徏端点来执行增删改查操作?查询数据 要查询数据,我们需要编写一个GEThQƈ从数据库中检索数据。以下是CZ代码Q?/span>
from fastapi import FastAPI
from typing import List
import psycopg2
app = FastAPI()
def create_conn():
conn = psycopg2.connect(
host="localhost",
database="mydatabase",
user="myuser",
password="mypassword",
port="5432"
)
return conn
@app.on_event("startup")
async def startup():
app.state.conn = create_conn()
@app.on_event("shutdown")
async def shutdown():
app.state.conn.close()
@app.get("/users")
async def read_users():
conn = app.state.conn
cursor = conn.cursor()
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
return [{"id": row[0], "name": row[1], "email": row[2]} for row in
rows]
在上面的代码中,我们定义?jin)一个名?read_users 的端点,q在其中执行?jin)SELECT语句以从用户表中 (g)索数据。我们还返回的l果转换为JSON格式Q以便可以轻村֜在Web应用E序中用它?/span>