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.管理员功能_管理员添加用户程序运行结果