用户登录与学生信息的增删

实现如下功能:

  1. 验证用户能否登入。
  2. 登录成功就可以添加或者删除学生的信息。

概况:

  1. 管理员身份的验证有:账号、密码
  2. 管理学生信息不是任何人都可以的,必须是管理员身份,管理员的身份验证有:注册、登录
  3. 学生信息有:姓名、年龄、性别、是否婚配
  4. 管理员可对学生信息表:增、删

在这里插入图片描述
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.9\python.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
	}
]

结果运行正确, 删除同理,读者可自行验证。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值