Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)

Python SQLAlchemy基本操作和常用技巧

什么是SQLAlchemy

SQLAlchemy是Python中最流行的ORM框架之一。ORM即“对象关系映射”,它提供了一种将数据库和Python对象联系起来的方式,这种方式使得在Python中操作数据库变得更加容易,同时也能够提供更好的抽象化和安全性。

安装SQLAlchemy

要使用SQLAlchemy,首先需要安装它。可以使用pip进行安装:

pip install sqlalchemy

建立连接

使用SQLAlchemy来连接到数据库,需要提供它所使用的数据库类型、用户名、密码、主机和端口。这些信息被组合成一个URL,称为“数据库URI”。

对于SQLite数据库,可以使用以下代码:

from sqlalchemy import create_engine

engine = create_engine('sqlite:///example.db')

这里使用了一个简单的例子,数据库文件名为example.db。如果需要连接到其他类型的数据库(如MySQL、PostgreSQL等),则需要提供相应的URI。

创建表格

在SQLAlchemy中,每个表格都是一个Python类。这意味着我们可以通过创建一个类来定义一个表格。在类中,每个属性都对应表格中的一个列。

以下示例展示了如何创建一个Notes表格:

from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Note(Base):
    __tablename__ = 'notes'

    id = Column(Integer, primary_key=True)
    title = Column(String)
    text = Column(String)

这里的Note类继承自declarative_base()返回的基类。id、title和text分别声明表格中的三个列。__tablename__变量指定了表格的名称。

添加数据

要向表格中添加数据,需要创建一个Session对象。Session是SQLAlchemy中处理数据库事务的主要接口。

以下代码展示了如何创建Session对象,并添加一条笔记到Notes表格中:

from sqlalchemy.orm import sessionmaker

Session = sessionmaker(bind=engine)
session = Session()

note = Note(title='Example Note', text='This is an example note.')
session.add(note)
session.commit()

这里创建了一个Session对象,并将其绑定到上一节中创建的engine。然后,创建了一个Note对象,并使用add()方法将其添加到session中。最后,使用commit()方法提交事务,将笔记添加到数据库中。

查询数据

要从表格中查询数据,可以使用Session对象的query()方法。这个方法接收一个表格作为参数,并返回一个包含所有行的查询对象。

以下代码查询了Notes表格中的所有笔记,并打印了它们的标题和内容:

notes = session.query(Note).all()
for note in notes:
    print(note.title)
    print(note.text)

query()方法返回Note表格中的所有笔记。用all()方法将结果转换为列表。之后可以遍历该列表,并分别打印每个笔记的标题和内容。

修改数据

要修改一条笔记,可以简单地将其对象重新赋值并提交事务:

note.title = 'New Title'
session.commit()

这里将标题重新赋值为“New Title”,然后调用commit()方法将更改提交到数据库中。任何已经发生的更改都将被提交,包括此次的更改。

删除数据

要删除一条笔记,可以使用Session对象的delete()方法:

session.delete(note)
session.commit()

这里使用delete()方法删除了之前创建的笔记对象,并使用commit()方法将更改提交到数据库中。

结论

这篇文章提供了SQLAlchemy的一些基本操作和常用技巧。SQLAlchemy是一个非常强大的ORM框架,可以帮助Python开发人员更轻松地管理数据库。通过使用Python类来定义表格和操作数据,让数据库的操作更容易理解和维护。

示例

以下是SQLAlchemy在Flask-web应用中的应用示例:

from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy

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

class Note(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(80), nullable=False)
    text = db.Column(db.String(120), nullable=False)

@app.route('/notes', methods=['GET', 'POST'])
def notes():
    if request.method == 'POST':
        note_data = request.get_json()
        note = Note(
            title=note_data['title'],
            text=note_data['text']
        )
        db.session.add(note)
        db.session.commit()
        return jsonify({'id': note.id})
    else:
        notes = Note.query.all()
        return jsonify([{
            'id': note.id,
            'title': note.title,
            'text': note.text
        } for note in notes])

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

这里创建了一个基本的Flask-web应用,并定义了一个Note类来操作数据库。该应用启动时会创建名为example.db的SQLite数据库,然后启动一个监听端口。当向/notes发送HTTP GET请求时,返回数据库中所有笔记的JSON数组。当向/notes发送HTTP POST请求时,将向数据库添加一条新笔记,并返回新笔记的ID。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好) - Python技术站

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

相关文章

  • Python入门之使用pandas分析excel数据

    以下是Python入门之使用pandas分析excel数据的完整实例教程: 第一步:导入必要的库 我们需要导入pandas库和xlrd库来处理Excel数据。 import pandas as pd import xlrd 第二步:读取Excel表格 我们可以使用pandas库中的read_excel函数来读取Excel表格。假设我们的Excel表名为exa…

    python 2023年5月13日
    00
  • Python 2.x.x 中的模块导入

    【问题标题】:Module import in Python 2.x.xPython 2.x.x 中的模块导入 【发布时间】:2023-04-04 21:12:01 【问题描述】: 我想使用我以前的程序作为一个模块。但是当我导入该程序时,程序会自动运行。我不想运行程序。我只想将该程序作为一个模块导入到我的新程序中,我使用该模块中的函数或变量。我试图添加这一行…

    Python开发 2023年4月6日
    00
  • python实现简单爬虫功能的示例

    下面是关于“python实现简单爬虫功能的示例”的完整攻略。 简介 爬虫是一种自动采集互联网数据的技术,它可以模拟人的操作,在互联网上寻找相关信息并进行整理分析。而Python作为一种快速、简单、易上手的编程语言,为爬虫功能提供了很多支持。在这里,我们将介绍如何使用Python实现简单的爬虫功能。 1. 准备工作 在开始之前,我们需要安装两个Python库:…

    python 2023年5月14日
    00
  • 利用Python将多张图片合成视频的实现

    下面是详细讲解“利用Python将多张图片合成视频的实现”的完整攻略: 1. 导入相关库 在使用Python进行图片合成视频之前,需要导入Pillow和OpenCV库,其中Pillow用于处理图片,OpenCV用于处理视频。 from PIL import Image import cv2 2. 设置参数 在进行图片合成视频之前,需要设置一些参数,包括文件路…

    python 2023年5月19日
    00
  • 如何利用python制作时间戳转换工具详解

    如何利用Python制作时间戳转换工具详解 时间戳指的是从1970年1月1日00:00:00开始所经过的秒数。它是计算机中对时间的一种表示方式。在实际应用中,我们有时候需要将时间戳转换成更为常见的时间格式,例如年月日时分秒。在Python中,可以使用模块time来实现时间戳和时间之间的转换。 获取当前时间戳 在Python中,可以通过time.time()方…

    python 2023年6月2日
    00
  • python re正则表达式模块(Regular Expression)

    下面是Python的正则表达式模块re的完整攻略。 简介 Python的re(Regular Expression)模块提供了正则表达式操作的功能。正则表达式是一种处理字符串的方式,它可以用于搜索、替换和分割字符串。正则表达式是由普通字符和特殊字符组成的模式,匹配模式所定义的字符串。Python的re模块提供了处理正则表达式的功能,能够方便地实现字符串的匹配…

    python 2023年6月3日
    00
  • python 根据正则表达式提取指定的内容实例详解

    以下是详细讲解“Python根据正则表达式提取指定的内容实例详解”的完整攻略,包括正则表达式的基本语法、使用re模块提取指定内容的方法和两个示例说明。 正则表达式的基本语法 正则表达式是一种用于匹配文本的模式。Python中,我们可以使用re模块来处理正则表达式。正则表达式的基本语法如下: 字符:匹指定的字符。 字符集:匹配指定的字符集。 量词:匹配指的数量…

    python 2023年5月14日
    00
  • 如何利用python正则表达式匹配版本信息

    以下是“如何利用Python正则表达式匹配版本信息”的完整攻略: 一、问题描述 在软件开发中,版本信息是非常重要的。在Python中,我们可以使用正则表达式来匹配版本信息。本文将详细讲解如何利用Python正则表达式匹配版本信息,以及如何在实际开发中应用。 二、解决方案 2.1 匹配数字版本号 在Python中,我们可以使用正则表达式来匹配数字版本号。具体来…

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