实现如下功能:
- 验证用户能否登入。
- 登录成功就可以添加或者删除学生的信息。
概况:
- 管理员身份的验证有:账号、密码。
- 管理学生信息不是任何人都可以的,必须是管理员身份,管理员的身份验证有:注册、登录。
- 学生信息有:姓名、年龄、性别、是否婚配。
- 管理员可对学生信息表:增、删。
data.json
[
{
"name": "南星",
"age": 23,
"gender": "女",
"isMarried": true
},
{
"name": "碜月",
"age": "21",
"gender": "男",
"isMarried": true
}
]
user.txt
aaa;00000 xiao;123456 yyy;666
登录注册界面.txt
************************** ** 请选择对应功能: ** ** 1. 登录 ** ** 2. 注册 ** **************************
添加删除界面.txt
请选择对应功能:
李1李. 添加学生信息
李2李. 删除学生信息
练习.py
import json
with open('static/登录注册界面.txt', encoding='utf-8') as f:
print(f.read())
def add_stu():
conteent = open('static/data.json', encoding='utf-8').read()
result = json.loads(conteent)
dic_1 = {}
dic_1["name"] = input('姓名: ')
dic_1["age"] = input('年龄: ')
dic_1["gender"] = input('性别: ')
dic_1["isMarried"] = eval(input('结婚没: '))
result.append(dic_1)
with open('static/data.json', 'w', encoding='utf-8') as f1:
f1.write(json.dumps(result))
def del_stu():
conteent = open('static/data.json', encoding='utf-8').read()
result = json.loads(conteent)
n = int(input('随便删一个:'))
result.pop(n)
print(result)
with open('static/data.json', 'w', encoding='utf-8') as f1:
f1.write(json.dumps(result))
def get_all_user_info():
"""获取账号文件内容,并且将文件内容转换成字典"""
f = open('static/user.txt', encoding='utf-8')
all_user = {}
for line in f.readlines():
name, pw = line.strip().split(';')
all_user[name] = pw
f.close()
return all_user
def register():
print('~~~~~正在注册~~~~~~')
# 1. 输入账号和密码
username = input('请输入账号(不能包含分号):')
pw = input('请输入密码(不能包含分号):')
if ';' in username or ';' in pw:
print('注册失败,账号或者密码不合法')
return
all_user = get_all_user_info()
if username in all_user:
print('注册失败,该账号已经存在!')
return
# 2) 将输入的账号和密码存储到文件中
f = open('static/user.txt', 'a', encoding='utf-8')
f.write(f'{username};{pw}n')
print('注册成功!')
f.close()
login()
def login():
print('~~~~~~~正在登录~~~~~~~~')
# 1. 输入账号和密码
username = input('请输入账号:')
pw = input('请输入密码:')
# 2. 判断登录是否成功
# 1)账号是否已经注册
all_user = get_all_user_info()
if username not in all_user:
print('登录失败! 该账号没有注册!')
return
# 2)密码是否正确
if all_user[username] != pw:
print('登录失败!密码不对!')
else:
print('登录成功!')
with open('static/添加删除界面.txt', encoding='utf-8') as f11:
print(f11.read())
value = input('请选择:')
if value == '1':
add_stu()
else:
del_stu()
def welcome():
value = input('请选择:')
if value == '1':
login()
elif value == '2':
register()
else:
print('输入有误!请重新选择:')
welcome()
if __name__ == '__main__':
welcome()
运行结果
D:python3.9python.exe E:/1_Q-F/用户学生/动态增删/练习.py
**************************
** 请选择对应功能: **
** 1. 登录 **
** 2. 注册 **
**************************
请选择:1
~~~~~~~正在登录~~~~~~~~
请输入账号:yyy
请输入密码:666
登录成功!
请选择对应功能:
李1李. 添加学生信息
李2李. 删除学生信息
请选择:1
姓名: 婷婷
年龄: 22
性别: 女
结婚没: False
进程已结束,退出代码0
[
{
"name": "南星",
"age": 23,
"gender": "女",
"isMarried": true
},
{
"name": "碜月",
"age": "21",
"gender": "男",
"isMarried": true
},
{
"name": "婷婷",
"age": "22",
"gender": "女",
"isMarried": false
}
]
结果运行正确, 删除同理,读者可自行验证。



