作业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)

posted @ 2020-03-31 20:18  the3times  阅读(9)  评论(0)    收藏  举报