CRUD 操作解析科普(SQL、ORM、FastAPI三种方式)
大家在日常的编程学习与开发交流中,常常会听到 CRUD 这个术语,可它究竟是什么呢?
或许你知道它和数据操作有关,却又不能详细地说明。今天,就带大家深入学习,探究CRUD 操作到底代表什么?
简而言之:CRUD 代表 Create
、Read
、Update
和 Delete
CRUD 是计算机科学中用于描述数据库或类似存储系统中基本操作的缩写。
Create
(创建)用于添加新数据Read
(读取)用于获取数据Update
(更新)用于修改现有数据Delete
(删除)用于移除数据。
这四个操作构成了数据管理的基础。
为什么 CRUD 操作必不可少?
在任何涉及数据处理的应用程序中,CRUD 操作都是核心。
Create
操作允许系统接收新信息Read
操作让用户和系统能够访问和查看数据Update
操作确保数据的准确性和时效性Delete
操作则帮助清理不再需要的数据,优化存储和系统性能。没有这些操作,数据管理将变得混乱无序,应用程序也无法正常运行。
什么是 SQL 中的 CRUD 操作?
在 SQL(结构化查询语言)中,CRUD 操作通过特定的语句来实现。
Create
通常使用INSERT
语句向数据库表中插入新记录;Read
使用SELECT
语句从表中检索数据;Update
使用UPDATE
语句修改现有记录的字段值;Delete
使用DELETE
语句从表中删除记录。
例如,使用INSERT INTO
语句添加新用户,使用SELECT * FROM
语句查询用户信息。
在原始 SQL 中编写 CRUD 操作
以 MySQL 为例,创建操作可以这样写:
INSERT INTO users (name, email) VALUES ('John Doe', 'ruzhila@example.com');
读取操作:
SELECT * FROM users WHERE id = 1;
更新操作:
UPDATE users SET email = 'ruzhila@example.com' WHERE id = 1;
删除操作:
DELETE FROM users WHERE id = 1;
使用 SQLAlchemy
执行 CRUD 操作
SQLAlchemy
是 Python 的数据库抽象层库。通过它,开发者可以使用 Python 代码进行数据库操作,而无需直接编写 SQL 语句。例如
创建操作:
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import sessionmaker, declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
email = Column(String)
engine = create_engine('sqlite:///example.db')
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()
new_user = User(name='Jane Smith', email='jruzhila@example.com')
session.add(new_user)
session.commit()
读取、更新和删除操作也有相应的 Python 方法实现。
`
HTTP 请求方法中的 CRUD 操作有哪些?
在 HTTP 协议中,CRUD 操作通常与特定的请求方法相关联。
Create
对应POST
方法,用于向服务器提交新数据;Read
对应GET
方法,用于从服务器获取数据;Update
对应PUT
或PATCH
方法,Put
通常用于完全替换资源,Patch
用于部分更新;Delete
对应DELETE
方法,用于删除服务器上的资源。
使用 REST API 执行 CRUD 操作
REST
(表述性状态转移)API 是一种常用的 Web API 设计风格,它利用 HTTP
方法实现 CRUD 操作。
- 通过向
/users
端点发送POST
请求并附带用户数据来创建新用户, - 使用
GET
请求/users/1
获取ID
为1
的用户信息, - 通过
PUT
请求/users/1
并附带更新数据来更新用户信息, - 使用
DELETE
请求/users/1
删除用户。
使用 FastAPI 执行 CRUD 操作
FastAPI
是一个基于 Python 的现代 Web 框架,用于快速构建 API。它可以很方便地实现 CRUD 操作。
通过定义不同的路由和处理函数,结合 SQLAlchemy
等数据库操作库,实现对数据库的创建、读取、更新和删除操作。
例如,使用 FastAPI 定义一个创建用户的路由:
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import List, Optional
app = FastAPI()
# 定义用户模型
class User(BaseModel):
id: int
name: str
email: str
age: Optional[int] = None
# 模拟数据库
fake_db = []
# 创建用户
@app.post("/users/", response_model=User)
def create_user(user: User):
for db_user in fake_db:
if db_user.id == user.id:
raise HTTPException(status_code=400, detail="User ID already exists")
fake_db.append(user)
return user
# 获取所有用户
@app.get("/users/", response_model=List[User])
def get_users():
return fake_db
# 获取单个用户
@app.get("/users/{user_id}", response_model=User)
def get_user(user_id: int):
for user in fake_db:
if user.id == user_id:
return user
raise HTTPException(status_code=404, detail="User not found")
# 更新用户
@app.put("/users/{user_id}", response_model=User)
def update_user(user_id: int, updated_user: User):
for index, user in enumerate(fake_db):
if user.id == user_id:
fake_db[index] = updated_user
return updated_user
raise HTTPException(status_code=404, detail="User not found")
# 删除用户
@app.delete("/users/{user_id}", response_model=User)
def delete_user(user_id: int):
for index, user in enumerate(fake_db):
if user.id == user_id:
deleted_user = fake_db.pop(index)
return deleted_user
raise HTTPException(status_code=404, detail="User not found")
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
加入入职啦,老师带你学习详细的后端编程知识。
官网地址: 入职啦 ruzhila
结论
CRUD 操作贯穿于数据处理的各个环节,无论是在数据库层面,还是在 Web 开发的 API 层面。
从原始 SQL 到各种高级框架和库,掌握 CRUD 操作的实现方式对于开发高效、可靠的数据驱动应用程序至关重要。
不同的技术和工具为实现 CRUD 操作提供了多样化的途径,开发者可以根据项目需求选择最合适的方案。
原文地址:https://blog.csdn.net/ruzhila/article/details/145276264
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!