废话不多说,直接上源码---
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)来提高安全性。