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

yizhihongxing

如何在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列表的问题

    【问题标题】:problem with python listpython列表的问题 【发布时间】:2023-04-04 00:49:01 【问题描述】: 您好,我正在尝试创建一个列表,通过 for 循环从 txt 文件中逐行读取。我在列表中遇到语法错误,但不确定如何解决问题??? import re file = open(“text.txt”,”r”) …

    Python开发 2023年4月6日
    00
  • python pip如何手动安装二进制包

    下面是详细的攻略: Python pip手动安装二进制包 什么是pip Pip是Python中的一个包管理工具,可以用来安装Python中的第三方库。Pip使Python安装第三方库变得十分容易,只需一行命令即可安装。 什么是二进制包 在程序中,二进制常常是现成可执行文件或库文件,一般由第三方编译、打包从而可以直接使用的文件。 手动安装二进制包的步骤 手动安…

    python 2023年5月14日
    00
  • Python实现自动装机功能案例分析

    首先让我们来讲解“Python实现自动装机功能案例分析”的完整攻略。 1. 确定需求和工具 在实现自动装机功能前,我们需要明确自动装机的目标和要求。我们需要考虑以下因素: 基础环境:操作系统版本、硬件要求、软件要求等。 安装配置:包括系统配置、应用安装、插件安装、驱动安装等配置。 自定义配置:包括桌面配置、音视频设置、办公软件和开发工具等配置。 在考虑了上述…

    python 2023年5月19日
    00
  • SQL中视图和物化视图的区别

    视图和物化视图都是SQL中的数据视图,用于从数据库表中抽象出一种逻辑上的结构。但是,它们之间有明显的区别。 视图 视图(View)是SQL中一种虚拟的表,它指向实际表中的一部分数据。在视图的概念中,查询结果是处理后,带有特定限制和规则的表。视图没有实际数据存储在其中,只是定义了一种访问数据的方式。 视图的优点 视图使得用户可以从数据库表中获取所需的子集数据,…

    database 2023年3月27日
    00
  • 寻找两个NumPy数组之间的共同值

    寻找两个NumPy数组之间的共同值,可以分为以下步骤: 导入NumPy模块 import numpy as np 创建两个NumPy数组 a = np.array([1, 2, 3, 4, 5]) b = np.array([3, 4, 5, 6, 7]) 调用NumPy的intersect1d函数,获取两个数组的共同值 common = np.inters…

    python-answer 2023年3月25日
    00
  • 浅析python 定时拆分备份 nginx 日志的方法

    浅析Python定时拆分备份Nginx日志的方法,可以分为以下几个步骤: 1. 确定日志拆分方式 可以根据需要选择按时间或按大小拆分日志。按时间拆分可以简单地根据日期拆分,例如每天、每周或每月。按大小拆分可以设置每个日志文件的最大大小,当超出后新开一个日志文件。 2. 编写Python脚本 下面是一个基本的Python脚本,用于按日期拆分Nginx日志文件:…

    python 2023年6月3日
    00
  • 超级键和候选键的区别

    超级键通常指的是按键组合,例如在 Windows 系统下,常见的超级键组合包括 Ctrl+Alt+Delete、Win+R、Win+E 等。这些组合键可以方便地调用系统功能,快速打开软件应用和文件,提高工作效率。而候选键则是指输入法中的一个特殊按键,在输入中文时可以调出一个弹窗,列出所有可能的结果,用户可以选择正确的汉字。下面就分别介绍超级键和候选键的不同之…

    database 2023年3月27日
    00
  • python读写csv文件方法详细总结

    Python读写CSV文件方法详细总结 什么是CSV文件? CSV(Comma-Separated Value)文件是一种简单的文件格式,用于存储表格或类似于表格的结构数据。CSV文件的每一行表示一个数据记录,该行中的每个字段由逗号分隔并且没有特殊的格式要求。CSV文件通常用于在不同的程序之间交换数据,例如:Excel、数据库等。 Python读取CSV文件…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部