动机
小伙伴们最近迷恋上羽毛球,组织了个小群,办了公用的运动卡用于开场,考虑不是每次活动都是全员参与,需要一个计费的系统来计算每个人需要交的费用。商讨后决定采用“预充-扣费”的方式,则需要一个系统进行计费和扣费。
技术路线规划
模块名
语言
备注
管理核心
Python
使用JSON存储信息
Web后端
Python
Flask框架
Web前端
HTML
Jinja框架渲染
实现
核心模块——用户状态管理
该部分是整个计费系统的核心,用于管理每个用户的余额。使用一个类表示用户,需要的属性为
状态列表(用户名,ID,使用次数,余额)
需要的方法有:
创建用户(创建新的JSON文件)
读取用户状态(从已有的JSON文件中)
扣费(使用次数增加1,余额减小)
充值(余额增加)
保存状态(将现有的状态写入JSON文件)
代码如下
# -*- coding: utf-8 -*-
import json
import os
class UserHanlde(object):
"""docstring for UserHanlde"""
def __init__(self, UserID, UserName=""):
super(UserHanlde, self).__init__()
if self.UserExsist(UserID):
self.UserInfo = self.LoadUserInfo(UserID)
else:
self.UserInfo = self.CreateNewUser(UserName, UserID)
构造函数,若该用户ID存在则读取状态,否则创建
def UserExsist(self, UserID):
return os.path.exists("./Users/%s.json" % UserID)
判断该ID的JSON文件是否存在
def CreateNewUser(self, UserName, UserID):
UserInfo = {
"name": UserName,
"id": UserID,
"n