如何使用python编写用户管理系统
时间: 2024-05-01 14:17:40 浏览: 127
使用 Python 可以使用多种数据库来实现用户管理系统,如 MySQL、SQLite、PostgreSQL 等。下面是一个使用 SQLite 实现用户管理系统的示例代码:
```python
import sqlite3
# 连接 SQLite 数据库
conn = sqlite3.connect('users.db')
# 创建一个名为 users 的表
conn.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT NOT NULL UNIQUE,
password TEXT NOT NULL
)
''')
# 插入一些示例数据
conn.execute('INSERT INTO users (username, password) VALUES (?, ?)', ('alice', '123456'))
conn.execute('INSERT INTO users (username, password) VALUES (?, ?)', ('bob', '654321'))
# 提交更改并关闭连接
conn.commit()
conn.close()
# 定义用户类
class User:
def __init__(self, username, password):
self.username = username
self.password = password
def save(self):
conn = sqlite3.connect('users.db')
try:
conn.execute('''
INSERT INTO users (username, password) VALUES (?, ?)
''', (self.username, self.password))
conn.commit()
except sqlite3.IntegrityError as e:
raise ValueError('用户名已存在')
finally:
conn.close()
@staticmethod
def get_all():
conn = sqlite3.connect('users.db')
cursor = conn.execute('SELECT id, username, password FROM users')
users = [User(username=row[1], password=row[2]) for row in cursor.fetchall()]
conn.close()
return users
@staticmethod
def get_by_username(username):
conn = sqlite3.connect('users.db')
cursor = conn.execute('SELECT id, username, password FROM users WHERE username = ?', (username,))
row = cursor.fetchone()
if not row:
return None
user = User(username=row[1], password=row[2])
conn.close()
return user
# 示例用法
if __name__ == '__main__':
# 创建用户
user = User(username='charlie', password='abcdef')
user.save()
# 获取所有用户
users = User.get_all()
for user in users:
print(user.username, user.password)
# 根据用户名获取用户
user = User.get_by_username('charlie')
if user:
print(user.username, user.password)
```
该示例代码使用 SQLite 数据库并定义了一个 User 类,包含了创建表、插入、查询等操作。你可以根据实际需要修改代码,例如加入修改、删除等功能。
阅读全文