当前位置:   article > 正文

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

python的sqlite

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

插入数据

创建表后,我们可以向表中插入数据。以下示例展示了如何向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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

查询数据

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

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

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

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

conn.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

更新和删除数据

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

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

高级应用

在掌握了基本操作后,我们可以进一步探索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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

使用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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

通过以上示例,我们可以看到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])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

通过这个插件,我们可以在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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/891458
推荐阅读
相关标签
  

闽ICP备14008679号