数据库插入案例-Python

废话不多说,直接上源码---

import sqlite3
import hashlib
try:
    # 连接到SQLite数据库
    conn = sqlite3.connect('example.db')
    cursor = conn.cursor()

    # 创建用户表,包含用户名和密码字段,注意列名的大小写
    cursor.execute('''
        CREATE TABLE IF NOT EXISTS users (
            id INTEGER PRIMARY KEY,
            name TEXT,
            age INTEGER,
            username TEXT,
            password TEXT,
            phone_number TEXT
        )
    ''')

    # 获取用户输入
    name = input("请输入名字: ")
    age = int(input("请输入年龄:"))  # 确保年龄是整数
    username = input("请输入用户名: ")
    password = input("请输入密码: ")
    phone_number = input("请输入电话号码:")
    
    # 对密码进行加密处理
    password_hash = hashlib.sha256(password.encode()).hexdigest()
    
    # 插入数据,注意这里插入的是加密后的密码
    cursor.execute("INSERT INTO users (name, age, username, password, phone_number) VALUES (?, ?, ?, ?, ?)", (name, age, username, password_hash, phone_number))
    conn.commit()

    # 查询并打印最新注册的用户信息
    cursor.execute("SELECT * FROM users ORDER BY id DESC LIMIT 1")
    latest_user = cursor.fetchone()
    print("最新注册的用户信息如下:")
    print(latest_user)

except sqlite3.DatabaseError as e:
    print(f"数据库错误:{e}")

finally:
    # 关闭游标和连接
    if 'cursor' in locals():
        cursor.close()
    if 'conn' in locals() and conn:
        conn.close()

这段代码是一个Python脚本,用于连接SQLite数据库,并创建一个用户表,然后提示用户输入个人信息,将这些信息插入到数据库中,并打印出最新注册的用户信息。以下是代码的主要功能和一些关键点:

1. **导入模块**:
   - `sqlite3`:用于操作SQLite数据库。
   - `hashlib`:用于密码加密。

2. **数据库连接**:
   - 使用`sqlite3.connect('example.db')`连接到名为`example.db`的SQLite数据库文件。

3. **创建用户表**:
   - 使用`cursor.execute`执行SQL语句创建一个名为`users`的表,包含`id`, `name`, `age`, `username`, `password`, `phone_number`字段。

4. **用户输入**:
   - 通过`input`函数提示用户输入名字、年龄、用户名、密码和电话号码。

5. **密码加密**:
   - 使用`hashlib.sha256`对用户输入的密码进行SHA-256加密,并使用`hexdigest`方法获取加密后的字符串。

6. **插入数据**:
   - 使用`cursor.execute`执行SQL语句,将用户信息插入到`users`表中。注意,插入的是加密后的密码。

7. **查询数据**:
   - 执行SQL查询,获取最新注册的用户信息,并使用`fetchone`方法获取查询结果。

8. **错误处理**:
   - 使用`try...except`结构捕获并处理`sqlite3.DatabaseError`异常。

9. **资源清理**:
   - 使用`finally`块确保无论是否发生异常,都会关闭游标和数据库连接。

这段代码是一个基本的数据库操作示例,演示了如何创建表、插入数据、查询数据以及错误处理和资源管理。不过,请注意,实际使用中可能需要对用户输入进行验证和清洗,以防止SQL注入等安全问题。同时,密码加密时可能还需要考虑添加盐值(salt)来提高安全性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值