18 数据库操作之基本 CRUD 操作

在上一篇文章中,我们介绍了如何使用 SQLAlchemy 进行数据库操作,了解了基础的 ORM(对象关系映射)概念。本篇将继续深入数据库的操作内容,重点讲解基本的 CRUD(创建、读取、更新、删除)操作。后续将会讨论数据库迁移内容。因此,了解基本的 CRUD 操作对我们更加高效地进行数据库管理至关重要。

一、什么是 CRUD 操作?

CRUD 是指在数据库中进行的四种基本操作:

  • Create:创建新的记录
  • Read:读取已有的记录
  • Update:更新现有的记录
  • Delete:删除记录

在 Flask 中,我们将利用 SQLAlchemy 来实现这些操作,确保我们的数据持久化存储在数据库中。

二、环境准备

在开始之前,请确保你已经安装了 Flask 和 SQLAlchemy。你可以使用以下命令安装:

1
pip install Flask Flask-SQLAlchemy

接下来,我们将创建一个简单的 Flask 应用,并配置 SQLAlchemy。

创建 Flask 应用

首先,我们需要创建一个基本的 Flask 应用,结构如下:

1
2
3
4
/my_flask_app

├── app.py
└── models.py

app.py 文件

app.py 中,我们将设置 Flask 应用和数据库。

1
2
3
4
5
6
7
8
9
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db' # 使用 SQLite 数据库
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)

from models import User # 导入模型

models.py 文件

models.py 中,我们将定义我们的数据库模型。

1
2
3
4
5
6
7
8
9
from app import db

class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)

def __repr__(self):
return f'<User {self.username}>'

三、基本的 CRUD 操作

创建(Create)

要创建新的记录,我们可以使用模型的实例化方法,并调用 db.session.add()db.session.commit() 来保存到数据库。

1
2
3
4
5
def create_user(username, email):
new_user = User(username=username, email=email)
db.session.add(new_user)
db.session.commit()
return new_user

读取(Read)

读取记录可以使用 query 方法。我们可以获取所有用户或者查找特定的用户。

1
2
3
4
5
def get_all_users():
return User.query.all()

def get_user_by_id(user_id):
return User.query.get(user_id)

更新(Update)

更新记录需要先查询到该记录,然后修改属性,最后提交更改。

1
2
3
4
5
6
7
def update_user(user_id, new_username, new_email):
user = User.query.get(user_id)
if user:
user.username = new_username
user.email = new_email
db.session.commit()
return user

删除(Delete)

删除记录同样需要查询到记录后进行删除。

1
2
3
4
5
6
def delete_user(user_id):
user = User.query.get(user_id)
if user:
db.session.delete(user)
db.session.commit()
return user

四、示例应用

现在我们将这些 CRUD 方法整合到一个简单的 Flask 路由中,演示如何在应用中使用这些操作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@app.route('/create/<username>/<email>')
def create(username, email):
user = create_user(username, email)
return f'Created user: {user.username}'

@app.route('/users')
def users():
users = get_all_users()
return '<br>'.join([user.username for user in users])

@app.route('/update/<int:user_id>/<new_username>/<new_email>')
def update(user_id, new_username, new_email):
user = update_user(user_id, new_username, new_email)
return f'Updated user: {user.username}' if user else 'User not found!'

@app.route('/delete/<int:user_id>')
def delete(user_id):
user = delete_user(user_id)
return f'Deleted user: {user.username}' if user else 'User not found!'

五、总结

在本篇中,我们成功实现了基本的 CRUD 操作,使用 Flask 与 SQLAlchemy 进行数据的持久化操作。通过创建、读取、更新和删除用户信息,我们可以更好地管理我们的数据。

下篇文章将继续深入数据库操作,我们将学习如何进行数据库迁移,帮助我们在开发过程中管理和变更数据库结构。感谢你的阅读,期待下次再见!

18 数据库操作之基本 CRUD 操作

https://zglg.work/flask-zero/18/

作者

IT教程网(郭震)

发布于

2024-08-10

更新于

2024-08-10

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论