首页 > 数据库 >Python在SQLite中的应用:从入门到进阶

Python在SQLite中的应用:从入门到进阶

时间:2024-06-16 16:00:04浏览次数:12  
标签:SQLite 进阶 Python db students sqlite3 conn cur

Python在SQLite中的应用:从入门到进阶

Python作为一门高效、灵活的编程语言,广泛应用于各种数据处理和分析任务。而SQLite是一种轻量级的数据库管理系统,特别适合于嵌入式应用和小型项目。在本篇博文中,我们将深入探讨Python在SQLite中的应用,帮助读者从零开始,逐步掌握这项技能。

为什么选择SQLite?

SQLite是一种嵌入式的关系型数据库管理系统,具有以下几个显著特点:

  1. 轻量级:SQLite非常小巧,无需安装即可使用,适合嵌入到各种应用中。
  2. 易于使用:SQLite的语法与标准SQL非常接近,对于有SQL基础的开发者来说,入门非常简单。
  3. 高性能:虽然是轻量级数据库,但SQLite在处理小型和中型数据集时性能非常优越。
  4. 跨平台:SQLite可以运行在各种操作系统上,包括Windows、Linux和macOS。

准备工作

在开始之前,请确保您的系统中已安装了Python。如果尚未安装,请访问Python官方网站进行下载和安装。接下来,我们需要安装SQLite的Python库,即sqlite3。幸运的是,sqlite3是Python标准库的一部分,无需额外安装。

基础操作

创建数据库和表

首先,我们需要创建一个SQLite数据库文件,并在其中创建一张表。例如,我们可以创建一个名为students.db的数据库,并在其中创建一个students表,存储学生的信息。

import sqlite3

# 连接到SQLite数据库(如果数据库不存在,会自动创建)
conn = sqlite3.connect('students.db')

# 创建一个游标对象
cur = conn.cursor()

# 创建学生表
cur.execute('''
CREATE TABLE IF NOT EXISTS students (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    age INTEGER,
    grade TEXT
)
''')

# 提交更改并关闭连接
conn.commit()
conn.close()

插入数据

创建表后,我们可以向表中插入数据。以下示例展示了如何向students表中插入几条记录。

# 重新连接到数据库
conn = sqlite3.connect('students.db')
cur = conn.cursor()

# 插入数据
cur.execute('INSERT INTO students (name, age, grade) VALUES (?, ?, ?)', ('Alice', 20, 'A'))
cur.execute('INSERT INTO students (name, age, grade) VALUES (?, ?, ?)', ('Bob', 22, 'B'))
cur.execute('INSERT INTO students (name, age, grade) VALUES (?, ?, ?)', ('Charlie', 23, 'C'))

# 提交更改并关闭连接
conn.commit()
conn.close()

查询数据

插入数据后,我们可以查询数据库中的记录。

conn = sqlite3.connect('students.db')
cur = conn.cursor()

# 查询数据
cur.execute('SELECT * FROM students')
rows = cur.fetchall()

# 打印查询结果
for row in rows:
    print(row)

conn.close()

更新和删除数据

除了插入和查询数据,我们还可以更新和删除数据。

conn = sqlite3.connect('students.db')
cur = conn.cursor()

# 更新数据
cur.execute('UPDATE students SET grade = ? WHERE name = ?', ('A+', 'Bob'))

# 删除数据
cur.execute('DELETE FROM students WHERE name = ?', ('Charlie',))

# 提交更改并关闭连接
conn.commit()
conn.close()

高级应用

在掌握了基本操作后,我们可以进一步探索Python与SQLite结合的高级应用。例如,结合pandas库进行数据分析,或使用flask框架构建Web应用。

使用pandas进行数据分析

pandas是Python中非常强大的数据分析库,我们可以结合pandas从SQLite数据库中读取数据,并进行分析。

import pandas as pd
import sqlite3

# 连接到数据库
conn = sqlite3.connect('students.db')

# 使用pandas读取数据
df = pd.read_sql_query('SELECT * FROM students', conn)

# 数据分析
print(df.describe())

conn.close()

使用Flask构建Web应用

Flask是一个轻量级的Web框架,非常适合快速开发Web应用。以下是一个简单的例子,展示如何使用FlaskSQLite构建一个学生信息管理系统。

from flask import Flask, request, jsonify
import sqlite3

app = Flask(__name__)

# 创建数据库连接函数
def get_db_connection():
    conn = sqlite3.connect('students.db')
    conn.row_factory = sqlite3.Row
    return conn

# 获取所有学生信息
@app.route('/students', methods=['GET'])
def get_students():
    conn = get_db_connection()
    students = conn.execute('SELECT * FROM students').fetchall()
    conn.close()
    return jsonify([dict(ix) for ix in students])

# 添加新学生
@app.route('/students', methods=['POST'])
def add_student():
    new_student = request.get_json()
    name = new_student['name']
    age = new_student['age']
    grade = new_student['grade']

    conn = get_db_connection()
    conn.execute('INSERT INTO students (name, age, grade) VALUES (?, ?, ?)', (name, age, grade))
    conn.commit()
    conn.close()
    return jsonify({'status': 'success'}), 201

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

通过以上示例,我们可以看到Python在SQLite中的应用不仅限于简单的数据库操作,还可以扩展到数据分析和Web开发等领域。

PlugLink中的SQLite应用

PlugLink作为一个强大的开源自动化平台,自然少不了对SQLite的支持。在PlugLink中,我们可以通过编写插件来实现对SQLite数据库的操作。以下是一个简单的PlugLink插件示例,展示了如何在插件中使用SQLite。

import sqlite3
from flask import Blueprint, request, jsonify

plugin_blueprint = Blueprint('sqlite_plugin', __name__)

@plugin_blueprint.route('/init_db', methods=['POST'])
def init_db():
    conn = sqlite3.connect('plugin_data.db')
    cur = conn.cursor()
    cur.execute('''
    CREATE TABLE IF NOT EXISTS data (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        info TEXT NOT NULL
    )
    ''')
    conn.commit()
    conn.close()
    return jsonify({'status': 'database initialized'}), 201

@plugin_blueprint.route('/add_data', methods=['POST'])
def add_data():
    info = request.json.get('info')
    conn = sqlite3.connect('plugin_data.db')
    cur = conn.cursor()
    cur.execute('INSERT INTO data (info) VALUES (?)', (info,))
    conn.commit()
    conn.close()
    return jsonify({'status': 'data added'}), 201

@plugin_blueprint.route('/get_data', methods=['GET'])
def get_data():
    conn = sqlite3.connect('plugin_data.db')
    cur = conn.cursor()
    cur.execute('SELECT * FROM data')
    rows = cur.fetchall()
    conn.close()
    return jsonify([dict(row) for row in rows])

通过这个插件,我们可以在PlugLink中实现数据库的初始化、数据添加和数据查询操作。

目前PlugLink发布了开源版和应用版,开源版下载地址:
Github地址:https://github.com/zhengqia/PlugLink
Gitcode地址:https://gitcode.com/zhengiqa8/PlugLink/overview
Gitee地址:https://gitee.com/xinyizq/PlugLink

应用版下载地址:
链接:https://pan.baidu.com/s/19tinAQNFDxs-041Zn7YwcQ?pwd=PLUG
提取码:PLUG

标签:SQLite,进阶,Python,db,students,sqlite3,conn,cur
From: https://blog.csdn.net/zhengiqa8/article/details/139719494

相关文章

  • Python API自动化:提升开发效率的利器
    PythonAPI自动化:提升开发效率的利器随着互联网的发展,API(应用程序接口)已经成为现代应用程序开发的核心部分。API允许不同的软件系统之间进行通信,使得开发者可以轻松地集成各种服务和功能。在日常开发中,API的自动化测试和调用成为了不可或缺的环节。本文将介绍如何使用Pytho......
  • 素养赛Python复赛题——错排问题
    2023年北京赛区素养赛Python复赛题:第6题,错排问题题目描述:圣诞节快到了,公司为每个员工都准备了礼物,每个礼物都有一个精美的盒子。如果所有的礼物都不小心装错了盒子,求所有礼物都装错盒子共有多少种不同情况。输入描述:输入一个正整数n表示公司人数,保证n≤20.输出描述:输......
  • python 小爬虫 DrissionPage+BeautifulSoup
    哈喽,大家好,我要开始写博客啦......
  • 【Python】数据处理:Matplotlib绘图
    Matplotlib是Python强大的数据可视化工具库,类似于MATLAB语言。Mat-lotlib提供了一整套与MATLAB相似的命令API,十分适合进行交互式制图,而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。Matplotlib是神经生物学家JohnD.Hunter于2007年创建的,其函数设计参考了MATLAB。......
  • python 如何生成原创文章
    生成原创文章是一个复杂的过程,因为它需要创造力、知识、语法和上下文理解。然而,Python可以用于辅助文章创作,例如通过生成文本、组合现有信息或根据特定模式进行内容创建。但要完全生成一个完全原创、有深度且逻辑连贯的文章,目前的技术还无法完全实现。不过,以下是一些Python可......
  • (必读)深入浅出Pandas:利用Python进行数据处理与分析 (李庆辉)
    书:pan.baidu.com/s/1tIHXj9HmIYojAHqje09DTA?pwd=jqso提取码:jqsoPandas概述:介绍了Pandas库的基本概念、特点和优势,以及它在数据处理和分析领域的重要性。Series对象:讲解了Series对象的创建、访问、修改以及常用的统计和分析方法,如均值、中位数、标准差等。DataFrame对象:详细......
  • 算法精粹:经典计算机科学问题的 Python 实现 (David Kopec)
    书:pan.baidu.com/s/1tIHXj9HmIYojAHqje09DTA?pwd=jqso提取码:jqso书籍简介:介绍了本书的作者、出版背景以及主要目的,即帮助读者深入理解算法原理,并通过Python实现解决计算机科学中的经典问题。Python语言基础:简要介绍了Python语言的特点和优势,为后续使用Python实现算法打下基础......
  • windows系统python代码打包为exe
    目录1建立虚拟环境condavenv2打包安装pyinstaller打包1建立虚拟环境好处:打包文件小,成功率高。坏处:代码使用到的第三方库需要重新安装如果不想使用虚拟环境,直接看2打包。conda如果没有conda,直接使用venv。查看虚拟环境condaenvlist创建虚拟环境condacreate......
  • 运筹学练习Python精解——决策论
    练习1某地区有甲、乙、丙三家食品厂生产同一种食品,有一千个用户(或购货点),假定在研究期间无新用户加入也无老用户退出,只有用户的转移,已知2006年5月份有500户是甲厂的顾客;400户是乙厂的顾客;100户是丙厂的顾客。6月份,甲厂有400户原来的顾客,上月的顾客有50户转乙厂,50户......
  • (高清pdf集合)图灵程序设计丛书:大规模数据处理入门与实战(套装全10册)【图灵出品!一套囊括S
    书:pan.baidu.com/s/1tIHXj9HmIYojAHqje09DTA?pwd=jqso提取码:jqso数据处理基础:介绍数据处理的基本概念、流程和应用场景,帮助读者建立对数据处理的整体认识。SQL语言与应用:详细讲解SQL的语法和用法,包括数据查询、数据操作和数据定义等,以及在实际应用中的最佳实践。Python数据挖......