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

yizhihongxing

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操作openpyxl导出Excel 设置单元格格式及合并处理代码实例

    针对你的问题,我将从以下几个方面进行讲解: openpyxl简介 Excel单元格格式设置 Excel单元格合并 Python操作openpyxl导出Excel设置单元格格式及合并处理代码实例 openpyxl简介 openpyxl是一个用于读取和编写Excel(.xlsx,.xlsm等)文件的Python库。它可以读取和写入Excel文件中的单元格数据、公…

    python 2023年6月5日
    00
  • 最新python正则表达式(re模块)详解

    最新Python正则表达式(re模块)详解 正则表达式是一种强大的文本处理工具,可以用于匹配、查找、替换和割字符串。Python提供了re模块来处理正则表达式。本文将为您详细讲解Python正则表达式语法、re模块的常用方法和两个示例说明。 正则表达式语法 在正则表达式中使用[]表示字符集,^表示取反,-表示范围,+匹配一个或多个字符,*表示匹配零或多个字符…

    python 2023年5月14日
    00
  • 浅谈Python实现2种文件复制的方法

    浅谈Python实现2种文件复制的方法 在Python中,文件复制是一种非常基本的操作,本文将介绍两种Python实现文件复制的方法。 方法一:使用shutil模块 使用Python自带的shutil模块来完成文件复制的操作。 import shutil src_file = r’C:\Users\Administrator\Desktop\test.txt…

    python 2023年6月5日
    00
  • 使用Python通过win32 COM打开Excel并添加Sheet的方法

    下面是使用Python通过win32COM打开Excel并添加Sheet的完整实现教程。 准备工作 首先需要安装win32COM库,可以使用pip安装: pip install pywin32 打开Excel并添加Sheet 下面是Python代码示例,该示例演示了如何使用win32COM打开Excel并添加Sheet: import win32com.cl…

    python 2023年5月13日
    00
  • PyQt5实现将Matplotlib图像嵌入到Scoll Area中显示滚动条效果

    下面我将详细讲解如何使用PyQt5将Matplotlib图像嵌入到Scoll Area中实现滚动条效果。具体步骤如下: 1. 导入相关库 首先需要导入相关库,包括PyQt5、Matplotlib和Numpy等,示例代码如下: import sys import matplotlib.pyplot as plt from PyQt5.QtWidgets imp…

    python 2023年6月3日
    00
  • 简单了解python字符串前面加r,u的含义

    那我就来详细讲解一下 Python 字符串前面加 r,u 的含义以及使用方法吧。首先简单介绍一下Python中字符串的定义方式: string1 = ‘hello world’ string2 = "hello world" string3 = """ hello world ""&quo…

    python 2023年5月20日
    00
  • 正则表达式中两个反斜杠的匹配规则详解

    以下是详细讲解“正则表达式中两个反斜杠的匹配规则详解”的完整攻略。 两个反斜杠的匹配规则 在正则表达式中,两个反斜杠(\)有着特殊的匹配规则。具体来说,两个反斜杠可以用来匹配一些特殊字符,如换行符、制表符等。下面是两个反斜杠的匹配规则: \n:匹配换行符。 \t:匹配制表符。 \r:匹配回车符。 \d:匹配数字字符。 \w:匹配字母、数字、下划线。 \s:匹…

    python 2023年5月14日
    00
  • python音频处理用到的操作的示例代码

    下面是关于Python音频处理操作的示例代码和攻略。 环境准备 首先,需要为我们的Python环境安装必要的音频库,比如pydub和ffmpeg。这些库可以通过pip命令安装: pip install pydub ffmpeg需要在系统中安装,并将其路径添加到环境变量中。 操作1:对音频进行剪裁和合并 在这个例子中,我们将展示如何使用Python进行音频的剪…

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