作业20200331
1、把登录与注册的密码都换成密文形式
# login.py
from lib.tools import hash_md5
from interface.interface import login_interface
def login():
print('这是登录界面'.center(50, '-'))
while 1:
name = input('请输入用户名:').strip()
pwd = input('请输入密码:').strip()
status_code = login_interface(name, hash_md5(pwd))
if status_code == 200:
print(f'登录成功,欢迎:{name}')
break
elif status_code == 301:
print('用户名或密码错误,请重新登录')
continue
else:
print('用户名不存在,请先注册')
break
if __name__ == '__main__':
login()
# register.py
from lib.tools import hash_md5
from interface.interface import register_interface
def register():
print('这是注册页面'.center(50, '-'))
while 1:
name = input('请输入用户名:').strip()
pwd = input('请输入密码:').strip()
re_pwd = input('请确认密码:').strip()
status_code = register_interface(name, hash_md5(pwd), hash_md5(re_pwd))
if status_code == 200:
print('注册成功,欢迎登陆')
break
elif status_code == 301:
print('用户名已经存在,请换一个')
continue
else:
print('两次密码输入不一致')
continue
if __name__ == '__main__':
register()
2、文件完整性校验(考虑大文件)
import hashlib
def verify_file(file):
m = hashlib.md5()
rules = [100, 500, 1000, 2000]
with open(file, 'rb') as f:
for pos in rules:
f.seek(pos, 0)
m.update(f.read(100))
return m.hexdigest()
3、注册功能改用json实现
# db/db_handle.py/add_info
def add_info(new_info):
"""
新增用户,将用户信息增加到数据库文件
:param new_info: [name, pwd, 0, init_balance]
:return:
"""
accounts_dict = json_read(DB_USER_FILE)
accounts_dict[new_info[0]] = new_info
json_write(accounts_dict, DB_USER_FILE)
# lib/tools.py
def json_read(file):
"""
读json文件,转成dict对象
:param file:
:return:
"""
import json
with open(file, 'rt', encoding='utf-8') as f:
return json.load(f)
def json_write(obj, file):
"""
将dict对象保存在json文件中
:param obj:
:param file:
:return:
"""
import json
with open(file, 'wt', encoding='utf-8') as f:
json.dump(obj, f)
4、项目的配置文件采用configparser进行解析
# lib/tools.py/config_parser
def config_parser(section, option, type=str):
import configparser
from conf.settings import CONF_INI_FILE
config = configparser.ConfigParser()
config.read(CONF_INI_FILE)
if type == int:
return config.getint(section, option)
return config.get(section, option)

浙公网安备 33010602011771号