如何在Python中使用Flask SQLAlchemy操作数据库?

如何在Python中使用Flask SQLAlchemy操作数据库?

Flask SQLAlchemy是一个基于Flask的Python ORM(对象关系映射)库,它提供了一种简单的方式来操作关系型数据库。使用Flask SQLAlchemy,我们可以使用Python代码来创建、读取、更新删除关系型数据库中的数据。以下是如何在Python中使用Flask SQLAlchemy操作数据库的完整使用攻略,包括连接数据库、创建表、插入数据、查询数据等步骤。同时,提供了两个示例以便更好理解如何在Python中使用Flask SQLAlchemy操作数据库。

步骤1:安装Flask SQLAlchemy

在Python中,我们需要安装Flask SQLAlchemy才能使用它来操作关系型数据库。以下是安装Flask SQLAlchemy的基本语法:

!pip install flask_sqlalchemy

在上面的语法中,我们使用pip命令安装Flask SQLAlchemy。

步骤2:连接数据库

在Python中,我们可以使用Flask SQLAlchemy连接关系型数据库。以下是连接的基本语法:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

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

在上面的语法中,我们首先导入Flask和SQLAlchemy类。然后,我们创建一个Flask应用程序对象,并设置数据库连接URI。最后,我们使用SQLAlchemy类创建一个数据库对象。

步骤3:创建表

在Flask SQLAlchemy中我们使用模型来表示关系型数据库中的表。以下是创建表的基本语法:

class Employee(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False)
    age = db.Column(db.Integer, nullable=False)

在上面的语法中,我们使用db.Model类创建一个模型对象。然后,我们使用db.Column类创建模型的字段。在字段中,我们可以设置字段的类型、长度、是否必须等属性。最后,我们使用primary_key=True设置主键。

步骤4:插入数据

在Python中,我们可以使用Flask SQLAlchemy插入数据到关系型数据库中。以下是插入数据的基本语法:

employee = Employee(name='John', age=30)
db.session.add(employee)
db.session.commit()

在上面的语法中,我们一个Employee对象,并设置nameage字段的值。然后,我们使用db.session.add方法将数据插入到关系型数据库中。最后,我们使用db.session.commit方法提交更改。

步骤5:查询数据

在Python中,我们可以使用Flask SQLAlchemy查询关系型数据库中的数据。以下是查询数据的基本语法:

employees = Employee.query.all()

for employee in employees:
    print(employee.name, employee.age)

在上面的语法中,我们使用query.all()方法查询Employee表中的所有数据。然后,我们使用for循环遍历所有数据,并打印出每个员工的姓名和年龄。

示例1

在这个示例中,我们使用Flask SQLAlchemy连接SQLite数据库,并创建一个Employee表。然后,我们插入一条数据到Employee表中。接着,我们查询所有数据。

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

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

class Employee(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False)
    age = db.Column(db.Integer, nullable=False)

employee = Employee(name='John', age=30)
db.session.add(employee)
db.session.commit()

employees = Employee.query.all()

for employee in employees:
    print(employee.name, employee.age)

在上面的代码中,我们首先创建一个Flask应用程序对象,并设置数据库连接URI。接着,我们使用db.Model类创建一个名为Employee的模型对象。在模型中,我们使用db.Column类创建idnameage字段。最后,我们使用primary_key=True设置id字段为主键。

接着,我们使用db.session.add方法将数据插入到SQLite数据库中。

然后,我们使用query.all()方法查询Employee表中的所有数据。然后,我们使用for循环遍历所有数据,并打印出每个员工的姓名和年龄。

示例2

在这个示例中,我们使用Flask SQLAlchemy连接SQLite数据库,并创建一个Order表。然后,我们插入两条数据到Order表中。接着,我们查询所有数据,并更新一条数据和删除一条数据。

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

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

class Order(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    customer_name = db.Column(db.String(50), nullable=False)
    order_date = db.Column(db.Date, nullable=False)

order1 = Order(customer_name='John', order_date='2023-05-12')
db.session.add(order1)

order2 = Order(customer_name='Mary', order_date='2023-05-13')
db.session.add(order2)

db.session.commit()

orders = Order.query.all()

for order in orders:
    print(order.customer_name, order.order_date)

order = Order.query.filter_by(customer_name='John').first()
order.order_date = '2023-05-14'
db.session.commit()

order = Order.query.filter_by(customer_name='Mary').first()
db.session.delete(order)
db.session.commit()

在上面的代码中,我们首先创建一个Flask应用程序对象,并设置数据库连接URI。接着,我们使用db.Model类创建一个名为Order的模型对象。在模型中,我们使用db.Column类创建idcustomer_nameorder_date。最后,我们使用primary_key=True设置id字段为主键。

接着,我们使用db.session.add方法将数据插入到SQLite数据库中。

然后,我们使用query.all()方法查询Order表中的所有数据。然后,我们使用for`循环遍历所有数据,并打印出每个订单客户姓名和订单日期。

然后,我们使用query.filter_by方法查询Order表中customer_nameJohn的数据。然后,更新该数据的order_date字段,并使用db.session.commit方法提交更改。

最后,我们使用query.filter_by方法查询Order表中customer_nameMary的数据。然后,我们使用db.session.delete方法删除该数据,并使用db.session.commit方法提交更改。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何在Python中使用Flask SQLAlchemy操作数据库? - Python技术站

(0)
上一篇 2023年5月12日
下一篇 2023年5月12日

相关文章

  • python随机数分布random均匀分布实例

    下面是一份“Python随机数分布——均匀分布实例”的完整攻略。在本文中,我将向您展示在Python中使用random模块生成均匀分布随机数的方法,并且提供两个实例以说明此过程。 1. 引言 在Python中,random模块可以用于生成随机数。均匀分布是一种常见的随机分布,在此分布中,每个数据值的概率都相同。在Python中,我们可以使用random模块中…

    python 2023年6月3日
    00
  • Oracle11g完全卸载的详细步骤(超管用)

    Oracle11g完全卸载的详细步骤(超管用) 1. 确认服务状态 在执行卸载前,需要保证Oracle相关服务已经停止运行,并且成功删除了Oracle安装目录和库文件等资源。 可以通过以下步骤,依次检查确认服务状态: 打开 “运行”,运行“services.msc”命令。 在列表中找到所有以Oracle名称开头的服务,确保所有的Oracle服务都已停止运行。…

    database 2023年5月22日
    00
  • Mysql数据库百万级数据测试索引效果

    下面是详细讲解Mysql数据库百万级数据测试索引效果的完整攻略: 背景 在日常的网站或系统开发中,我们经常需要处理大量的数据,对于这些数据的查询和操作,使用合适的索引能够大幅提升程序的性能。本篇攻略将讲解如何针对百万级别的数据进行测试,并比较不同类型的索引的效果。 环境准备 为了模拟百万级数据量的情况,我们需要准备一个足够大的表。这里使用一个包含100万条数…

    database 2023年5月19日
    00
  • python中的unittest框架实例详解

    Python中的unittest框架实例详解 简介 unittest是Python自带的测试框架,用于编写自动化测试用例。使用unittest可以轻松地编写和执行测试用例,并进行断言测试结果是否符合预期。本文将详细介绍unittest框架的基本用法和常见示例。 安装 unittest框架不需要额外安装,只需引入unittest即可。 import unitt…

    python 2023年6月5日
    00
  • Python编写一个优美的下载器

    Python编写一个优美的下载器其实是一件相对简单的事情,下面是详细的攻略: 步骤1:安装依赖库 在Python中,我们可以使用requests库和tqdm库来实现一个优美的下载器。如果您尚未安装这些库,请使用以下命令在终端中安装: pip install requests tqdm 这里我们安装了requests库和tqdm库,其中,requests库用来…

    python 2023年6月3日
    00
  • 基于数据归一化以及Python实现方式

    以下是关于“基于数据归一化以及Python实现方式”的详细讲解。 数据归一化的概念 数据归一化(Normalization)是指通过某种统计方法将数据按照比例缩放,使之落入一个特定的区间。数据归一化常用于数据挖掘中的特征值处理,或者在某些算法中对特征进行处理。常见的数据归一化方法有线性比例变换、Z-Score规范化、Sigmoid函数归一化等等。 线性比例变…

    python 2023年6月5日
    00
  • 解决python使用list()时总是报错的问题

    以下是详细讲解“解决Python使用list()时总是报错的问题”的完整攻略。 在Python中,list()函数是用于将可迭代对象转换为列表的函数。但是,在使用list()函数时,有时会出现报错的情况。本文将介绍如何解决Python使用list()函数时总是报错的问题,并提供两个示例说明。 报错原因 在使用list()函数时,常见的报错原因有以下几种: T…

    python 2023年5月13日
    00
  • MySQL入门(一) 数据表数据库的基本操作

    下面是关于“MySQL入门(一) 数据表数据库的基本操作”的完整攻略。 一、创建MySQL数据库 在MySQL中,可以通过以下命令创建一个新的数据库: CREATE DATABASE <数据库名>; 其中,<数据库名>指代你所创建的数据库的名字,例如: CREATE DATABASE mydb; 这样就创建了一个名为mydb的数据库。…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部