# 实现一个小型用户数据存储项目:用Python和SQLite数据库


背景介绍

本项目旨在实现一个简易的用户数据存储系统,通过用户输入姓名和年龄,将数据持久化到本地SQLite数据库中。该系统包含文件读写逻辑、表结构创建以及数据验证与存储逻辑,覆盖了核心功能:文件写入、数据处理和数据库交互。项目采用Python作为开发语言,结合SQLite数据库实现数据存储,无需依赖外部框架或服务,满足本地环境需求。

思路分析

  1. 核心功能模块
    • 文件读取:读取用户输入并验证数据格式(姓名和年龄必须为整数)
    • 数据存储:使用Python的sqlite3模块与SQLite数据库交互,实现数据持久化
    • 数据验证:在数据处理逻辑中验证输入是否符合预期格式
    • 表结构创建:自动生成用户表结构并创建表
  2. 关键实现
    • 数据处理流程:通过命令行或标准输入读取数据,验证输入并存储
    • 数据持久化方式:使用SQLite的内置事务机制确保写入操作的原子性
    • 本地环境适配:通过命令行输入数据,无需依赖第三方库

代码实现

import sqlite3

def store_user_data():
    # 读取输入
    user_input = input("请输入姓名和年龄(用空格分隔):")
    if not user_input.strip():
        print("请确保输入有效数据。")
        return

    # 分割输入并验证格式
    parts = user_input.strip().split()
    if len(parts) != 2:
        print("输入格式错误。请输入如张三 25。")
        return

    name, age = parts
    if not name.isdigit() or not age.isdigit():
        print("输入格式错误。请确保姓名和年龄为数字。")
        return

    # 数据存储逻辑
    conn = sqlite3.connect(':memory:', check_same_tables=True)
    cursor = conn.cursor()
    cursor.execute("""
        CREATE TABLE IF NOT EXISTS users (
            id INTEGER PRIMARY KEY,
            name TEXT,
            age INTEGER
        )
    """)
    cursor.execute("INSERT OR IGNORE INTO users (name, age) VALUES (?, ?)", (name, int(age)))
    conn.commit()

    print("数据已写入SQLite数据库,表结构已创建。")

if __name__ == "__main__":
    store_user_data()

总结

本项目通过Python与SQLite数据库的结合,实现了用户数据的简单存储与验证功能。核心代码包含读取输入、数据存储、表结构创建和验证逻辑,确保了数据的持久性与完整性。项目覆盖了基础的数据处理和存储需求,适用于本地开发环境。通过命令行输入数据,无需依赖外部服务,实现了高效的本地化数据操作。