作业需求
- 指定最大透支额度
- 可取款
- 定期还款(每月指定日期还款,如15号)
- 可存款
- 定期出账单
- 支持多用户登陆,用户间转帐
- 支持多用户
- 管理员可添加账户、指定用户额度、冻结用户等
目录结构如下:
ATM2/
├── bin
│ ├── admin_user.py ##管理员进入界面
│ ├── atm_user.py # 普通用户进入界面
│ └── __init__.py
├── conf
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-36.pyc
│ │ └── settings.cpython-36.pyc
│ └── settings.py # 主配置文件 (首先看这个)
├── core
│ ├── accounts.py # 用户数据json 文件
│ ├── auth.py # 用户认证
│ ├── bill_date.py # 时间格式
│ ├── db_handler.py # 数据库
│ ├── __init__.py
│ ├── logger.py #log 文件
│ ├── main.py # 主函数
│ ├── __pycache__
│ │ ├── accounts.cpython-36.pyc
│ │ ├── auth.cpython-36.pyc
│ │ ├── bill_date.cpython-36.pyc
│ │ ├── db_handler.cpython-36.pyc
│ │ ├── __init__.cpython-36.pyc
│ │ ├── logger.cpython-36.pyc
│ │ ├── main.cpython-36.pyc
│ │ └── transaction.cpython-36.pyc
│ └── transaction.py
├── db
│ ├── accounts
│ │ ├── admin.json
│ │ ├── liang2.json
│ │ └── liang.json
│ └── __init__.py
├── __init__.py
└── log
├── access.log
├── accounts
├── __init__.py
└── transactions.log
说下心得哈。首先我。我也是第一次写这种代码 最开始的时候一个文件相互调来调去的确实繁琐,
后面看ygqygq2 老哥写的,豁然开朗。第一步就是看代码。先把代码一行行去读起来。因为我也没
学多久。久久看了两天才把老哥的代码看懂。实在没办法。 还有就是看代码的顺序。第一看的是配置
文件,后面你文件头里面的import 是那个文件,这样以此类推的看下去。
我的代码还是有点问题,没有老哥的代码写的完美。那么上代码把
settings.py
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author: liang import sys,os,logging BASE_DIR= os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(BASE_DIR) BILL_DAY=25 DATABASE={ 'engine':'file_storage', 'name':'accounts', 'path':'%s/db' %BASE_DIR } LOG_LEVEL=logging.INFO LOG_TYPES={ 'transaction':'transactions.log', 'access':'access.log', } LOG_DATABASE={ 'engine': 'file_storage', 'name': 'accounts', 'path': '%s/log' %BASE_DIR } TRANSACTION_TYPE={ 'repay':{'action':'plus','interest':0}, # 还款 'receive':{'action':'plus','interest':0}, #接受 'withdraw':{'action':'munus','interest':0.05}, #提款 'transfer':{'action':'minus','interest':0.05}, # 转出 'pay':{'action':'minus','interest':0}, #支付 'sava':{'action':'plus','interest':0}, #存钱 } ACCOUNT_FORMAT={ ''' 用户数据格式 {"enroll_date": "2016-01-02", "password": "abc", "id": 1000, "credit": 15000, "status": 0, "balance": 1000.0, "expire_date": "2021-01-01", "pay_day": 22} ''' }