Python + Flask ORM实现增删改查

1. 介绍

Python是一种广泛应用于Web开发的编程语言,而Flask是Python中最受欢迎的Web框架之一。ORM(Object Relational Mapping)则是一种通过面向对象的方式操作数据库的技术。在本文中,我们将使用Python和Flask的ORM实现对数据库的增删改查操作。

1.1 引入依赖

首先,我们需要安装Flask和SQLAlchemy这两个库。Flask是我们的Web框架,而SQLAlchemy是一个强大的Python ORM库。

$ pip install flask

$ pip install sqlalchemy

1.2 设置Flask应用

接下来,我们创建一个Flask应用,并进行一些基本的配置。

from flask import Flask

from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'

db = SQLAlchemy(app)

上述代码中,我们创建了一个Flask应用,并配置了数据库的URI为一个SQLite数据库文件。同时,我们还创建了一个SQLAlchemy的实例。

2. 创建数据模型

在我们进行增删改查操作之前,我们需要定义一个数据模型。在这个例子中,我们创建一个简单的学生模型,包含学生的姓名和年龄。

class Student(db.Model):

id = db.Column(db.Integer, primary_key=True)

name = db.Column(db.String(50))

age = db.Column(db.Integer)

上述代码中,我们定义了一个名为Student的数据模型,它继承自db.Model。该模型包含了一个自增的id属性,以及一个name和age属性。

3. 数据库操作

3.1 创建数据

接下来,我们可以使用ORM来创建数据了。我们可以直接创建一个Student对象,然后将其添加到数据库中。

student = Student(name='John', age=20)

db.session.add(student)

db.session.commit()

上述代码中,我们创建了一个名为John、年龄为20的学生对象,并将其添加到数据库中。我们需要调用db.session.commit()来保存修改。

3.2 查询数据

我们可以使用ORM进行各种类型的查询操作。下面是一些例子。

查询所有学生:

students = Student.query.all()

根据条件查询学生:

students = Student.query.filter_by(name='John').all()

根据id查询学生:

student = Student.query.get(1)

上述代码中,我们使用了query对象的一些方法来实现相应的查询操作。

3.3 更新数据

要更新数据库中的数据,我们需要先查询到该数据,并修改相应的属性,然后保存修改。

student = Student.query.get(1)

student.name = 'Jane'

db.session.commit()

上述代码中,我们查询到id为1的学生对象,将其名字修改为Jane,并保存修改。

3.4 删除数据

删除数据也需要先查询到该数据,然后使用db.session.delete()方法来删除。

student = Student.query.get(1)

db.session.delete(student)

db.session.commit()

上述代码中,我们删除了id为1的学生对象。

4. 综合应用

现在,我们已经学会了使用Python和Flask的ORM实现对数据库的增删改查操作。下面是一个简单的示例,展示了如何将上述操作整合到一个完整的应用中。

from flask import Flask, render_template, request

from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'

db = SQLAlchemy(app)

class Student(db.Model):

id = db.Column(db.Integer, primary_key=True)

name = db.Column(db.String(50))

age = db.Column(db.Integer)

@app.route('/')

def index():

students = Student.query.all()

return render_template('index.html', students=students)

@app.route('/add', methods=['POST'])

def add():

name = request.form['name']

age = int(request.form['age'])

student = Student(name=name, age=age)

db.session.add(student)

db.session.commit()

return redirect('/')

@app.route('/delete/')

def delete(id):

student = Student.query.get(id)

db.session.delete(student)

db.session.commit()

return redirect('/')

if __name__ == '__main__':

app.run(debug=True)

上述代码中,我们创建了一个简单的Web应用。在首页中,我们展示了所有的学生信息。在添加页面中,我们可以输入学生的姓名和年龄,然后将其添加到数据库中。在删除页面中,我们展示了一个删除链接,点击链接可以删除相应的学生。

5. 总结

在本文中,我们学习了如何使用Python和Flask的ORM实现对数据库的增删改查操作。我们首先创建了一个Flask应用,并配置了数据库的URI。然后,我们定义了一个学生模型,并使用ORM进行数据的增删改查操作。最后,我们展示了一个综合应用,演示了如何将上述操作整合到一个完整的应用中。

使用Python和Flask的ORM,我们可以方便地操作数据库,增加了开发效率。希望本文对你有所帮助!

后端开发标签