结合tkinter做一个密码管理系统

       最近在尝试做一个密码管理系统,因为要记住那么多的账号和密码,实在有点为难老年人,所以就想做一个只属于自己的密码管理器,加密和解密的规则由自己来定。今天就总结一下这个过程遇到的一些问题吧,知识点有点散乱,但是都是自己确实出现的问题。

       1. 关于输入

1.1 input()得到的事一个字符串,eval()可以将字符串的引号去掉,变为int型,但是去掉引号的字符不能是字母,必须为数 字

2. 关于字符串

  [chr(i) for i in range(97, 123)]可以得到一个从a到z的列表,同理[chr(i) for i in range(65, 90)]得到的事A到Z的列表,数字的ACSII码是48到57。chr()可以将十进制数转化为ACSII码,例如chr(2),结果为'\x02'。ord()可以将字符转化为十进制数,注意,例如要将2转化为对应的字符,则应该用ord('2'),结果为50。

3. 关于字典,列表,字符串

  3.1 遍历字典的方法

dicts = {
         'name': 'jiangwei',
         'sex': 'm',
         'grade': '78',
         }
for k, v in dicts.items():
    print(k+': '+v)
字典排序:sorted,

例如:

sorted(dicts.keys)  # 以keys排序
sorted(dicts.values)  #以values排序

3.2 字典,元组,字符串,列表之间的转化

字典转其他

# 字典转字符串
str(dict)
# 字典转元组
tuple(dict)  #返回keys
tuple(dict.values())  #返回values
# 字典转列表
list(dict)  # 返回keys的列表
list(dict.values()) # 返回values的列表
# 列表转字符串
lst = ['a','b','c']
str(lst)
# 列表转元组
tuple(lst)
# 列表不能转为字典
# 字符串转元组
st = 'abcd'
tuple(st)
# 字符串转列表
list(st)

3.3 zip()函数和range()函数

  相似点是迭代器,range()函数实际上是“左闭右开”的;zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表,即返回值是元组列表。

例子:

 

 

4. tkinter的一些属性及方法

text    要实现的文本

bg    背景颜色

front    字体属性

width    宽度

height    高度

一个问题:

上面取vi时,要逆序取,因为insert()取出的本来就是逆序的,所以要得到正序的话,只能利用循环让insert()从最后一个开始去,显示的就是正序的了

 

 



 
好的,以下是一个基本的用户管理系统的设计思路: 1. 首先需要安装MySQL或其他关系型数据库,并创建一个名为user_management的数据库。然后在该数据库中创建一个名为users的用户表,该表包含用户名、密码和权限等字段。 2. 在Python中,需要使用pymysql或其他SQL库连接到数据库,并进行相关表的操作,比如创建表、插入数据、查询数据等。 3. 接下来可以编写相应的功能模块,比如用户注册、登录、修改密码等等。这些功能可以使用SQL语句实现,也可以使用Python中的SQL库实现。 4. 最后,需要编写用户界面,可以使用Python中的GUI工具实现,比如Tkinter、wxPython等。 下面是一个简单的示例代码: ```python import pymysql # 连接数据库 conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='user_management', charset='utf8') cursor = conn.cursor() # 创建用户表 cursor.execute('CREATE TABLE IF NOT EXISTS users (id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(20) NOT NULL, password VARCHAR(20) NOT NULL, permission INT)') # 用户注册 def register(username, password): cursor.execute("INSERT INTO users (username, password, permission) VALUES (%s, %s, %s)", (username, password, 1)) conn.commit() # 用户登录 def login(username, password): cursor.execute("SELECT * FROM users WHERE username = %s AND password = %s", (username, password)) user = cursor.fetchone() if user: return user[0] else: return None # 修改密码 def change_password(user_id, new_password): cursor.execute("UPDATE users SET password = %s WHERE id = %s", (new_password, user_id)) conn.commit() # 关闭数据库连接 cursor.close() conn.close() ``` 这只是一个简单的示例代码,具体的实现还需要根据需求进行调整和完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大骨熬汤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值