20 ORM简介

20 ORM简介

在Flask开发中,ORM(对象关系映射)是一个非常重要的概念。它用来简化数据库操作,使得开发者可以通过面向对象的方式进行数据库交互,而不必编写复杂的SQL语句。Flask常用的ORM库是SQLAlchemy,下面我们来详细了解一下。

什么是ORM?

ORM的全称是“对象关系映射”。它的主要目的是将数据库中的表映射成对象类,从而让开发者能够更直观地操作数据库记录。例如,你可以将数据库中的User表映射成User类,通过User类的实例来访问或修改表中的数据。

ORM的优势:

  • 简化操作:开发者可以使用Python对象和方法,而不是手动编写SQL。
  • 提高可读性:代码更加易于理解,符合面向对象的编程风格。
  • 数据库无关性:通过ORM,可以更容易地改变底层数据库,而不必修改大量的SQL代码。

Flask和SQLAlchemy集成

Flask集成SQLAlchemy非常简单。首先,你需要安装Flask-SQLAlchemy

1
pip install Flask-SQLAlchemy

然后,你可以在Flask应用中设置数据库连接和模型。

示例代码

接下来,我们将创建一个简单的Flask应用来展示如何使用ORM。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)

# 定义一个User模型
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}>'

# 创建数据库
with app.app_context():
db.create_all()

# 添加用户
def add_user(username, email):
new_user = User(username=username, email=email)
db.session.add(new_user)
db.session.commit()

# 查询用户
def get_users():
return User.query.all()

if __name__ == '__main__':
app.run(debug=True)

使用ORM进行基本操作

添加记录

在上面的示例中,我们定义了一个add_user函数来添加用户。你可以调用这个函数来向数据库添加新用户:

1
2
add_user('alice', 'alice@example.com')
add_user('bob', 'bob@example.com')

查询记录

要查询所有用户,你可以使用get_users函数:

1
2
3
users = get_users()
for user in users:
print(user) # 输出: <User alice> <User bob>

更新记录

如果需要更新某个用户的信息,首先要查询出该用户,然后修改其属性并提交:

1
2
3
4
5
def update_user(old_username, new_username):
user = User.query.filter_by(username=old_username).first()
if user:
user.username = new_username
db.session.commit()

删除记录

同样,删除一条记录也很简单:

1
2
3
4
5
def delete_user(username):
user = User.query.filter_by(username=username).first()
if user:
db.session.delete(user)
db.session.commit()

总结

ORM的使用为Flask应用提供了更为直观且便利的数据库操作方式。通过使用SQLAlchemy,我们可以轻松地进行数据的增删改查,而无需编写冗长的SQL语句。掌握ORM的使用,将帮助你更高效地进行Flask开发。

作者

AI教程网

发布于

2024-08-08

更新于

2024-08-10

许可协议