Day26.管理员功能

1.管理员功能_修改用户额度

   管理员视图层 admin.py中的代码:

# 修改用户额度
def change_balance():
    while True:
        # 1)输入需要修改的用户名
        change_user = input('请输入需要修改额度的用户:').strip()
        
        # 2)修改的用户额度
        money = input('请需要修改的用户额度:').strip()
        if not money.isdigit():
            continue

        # 3)调用修改额度接口
        flag, msg = admin_interface.change_balance_interface(change_user, money)
        if flag:
            print(msg)
            break
        else:
            print(msg)

  管理员接口层 admin_interface.py中的代码:

from ATM.db import db_handler

# 修改额度接口
def change_balance_interface(username, input_money):
    user_dic = db_handler.select(username)
    # 用户存在
    if user_dic:
        user_dic['balance'] = int(input_money)
        # 保存修改后的数据
        db_handler.save(user_dic)
        return True, '用户:{},额度修改为:{}'.format(username, input_money)
    else:
        return False, '用户:{},不存在'.format(username)

  查看用户信息:db_handler.py 的代码

# 查看数据
def select(username):
    # 1) 接收接口层传过来的username用户名,拼接用户json文件路径
    user_path = os.path.join(
        settings.USER_DATA_PATH, '{}.json'.format(username)
    )
    # 2) 校验用户json文件是否存在
    if os.path.exists(user_path):
        # 3) 打开数据,并返回分接口层
        with open(user_path, 'r', encoding='utf-8') as f:
            user_dic = json.load(f)
            return user_dic
    # 3) 不return, 默认return None

2.管理员功能_添加用户和冻结用户

    管理员视图层 admin.py中的代码:

# 添加账户
def add_user():
    src.register()

# 冻结账户
def lock_user():
    while True:
        # 1)输入需要冻结的用户名
        change_user = input('请输入需要修改额度的用户:').strip()
        flag, msg =  admin_interface.lock_user_interface(change_user)
        if flag:
            print(msg)
            break
        else:
            print(msg)

  管理员接口层 admin_interface.py中的代码:

# 冻结用户接口
def lock_user_interface(username):
    user_dic = db_handler.select(username)
    if user_dic:
        # 将loked的默认值改为True
        user_dic['locked'] = True
        db_handler.save(user_dic)
        return True, '用户:{},已冻结'.format(username)
    
    else:
        return False, '用户:{},不存在'.format(username)

  保存用户信息:db_handler.py 的代码

import os
from ATM.conf import settings
import json
# 保存数据
def save(user_dic):
    # 1) 拼接用户的数据字典
    username = user_dic.get('username')
    user_path =  os.path.join(
        settings.USER_DATA_PATH, '{}.json'.format(username)
    )
    print('user_path:{}'.format(user_path))
    
    # 2) 保存用户数据
    with open(user_path, 'w', encoding='utf-8') as f:
        # ensure_ascii=False 让文件中的中文数据,显示更美观
        json.dump(user_dic, f, ensure_ascii=False)
        print('用户`{}`注册成功'.format(username))

3.管理员功能_登录接口添加判断用户是否被冻结

4.管理员功能_管理员冻结用户程序运行结果

5.管理员功能_被冻结用户执行登录程序运行结果

6.管理员功能_管理员修改用户额度程序运行结果

7.管理员功能_管理员添加用户程序运行结果

 

posted on 2024-06-13 09:22  与太阳肩并肩  阅读(2)  评论(0编辑  收藏  举报

导航