python分文件规范化开发

单个文件:

user_txt = r'C:\Users\lg\Desktop\study\Python\python对象\user.txt'

status_dic = {
    "username":None,
    "status":False
}
flag = True

def login():
    i = 0
    with open(user_txt,'r',encoding='utf-8') as f0:
        dic = {i.strip().split('|')[0]:i.strip().split('|')[1]   for i in f0}
    while i < 3:
        username = input("请输入登入名:").strip()
        passwd = input("请输入密码:").strip()
        if username in dic and passwd == dic[username]:
            print("登入成功!")
            status_dic['username']=username
            return True
        else:
            print("用户名或者密码错误!")
            i += 1

def register():
    with open(user_txt,'r',encoding='utf-8') as f0:
        dic = {i.strip().split('|')[0]:i.strip().split('|')[1]   for i in f0}
    while 1:
        username = input("请输入你要注册的用户名:").strip()
        if not username.isalnum():
            print("输入包含非法字符,请重新注册。")
            continue
        if username in dic:    #判断用户名是否已经创建,没有则注册
            print("用户名已存在")
            continue
        passwd = input("请输入密码:").strip()
        if 6 <= len(passwd) <= 14:
            with open(user_txt,'a',encoding='utf-8') as f1:
                f1.write(f'\n{username}|{passwd}')
            status_dic['username'] = str(username)
            status_dic['status'] = True
            print("注册成功。已帮您成功登入。")
            return  True
        else:
            print("密码长度不在范围内!")

def auth(func):
    def inner(*args,**kwargs):
        if status_dic['status']:
            ret = func(*args,**kwargs)
            return ret
        else:
            print("请先进行登入:")
            if login():
                ret = func(*args, **kwargs)
                return ret
    return inner

@auth
def article():
    print(f"欢迎{status_dic['username']}来到评论页面")

@auth
def diary():
    print(f"欢迎{status_dic['username']}来到日记页面")

@auth
def comment():
    print(f"欢迎{status_dic['username']}来到评论页面")

@auth
def collect():
    print(f"欢迎{status_dic['username']}来到收藏页面")

def login_out():
    pass

def exit_program():
    pass



choice_dic = {
    1:login,
    2:register,
    3:article,
    4:diary,
    5:comment,
    6:collect,
    7:login_out,
    8: exit_program
}


def run():
    while flag:
        print("""
        欢迎来到博客园首页
        1.请登入
        2.请注册
        3.文章界面
        4.日记界面
        5.评论界面
        6.收藏界面
        7.注销
        8.退出程序
        """)
        input_num = input("请输入您要登入的序号:").strip()
        if input_num.isdigit():
            choice = int(input_num)
            if 1 <= choice <= 8:
                choice_dic[choice]()
            else:
                print("输入超出范围!")

        else:
            print("输入异常,包含非法字符!")

run()

分文件:
在这里插入图片描述
start.py:

import sys
import os

blog_path = os.path.dirname(os.path.dirname(__file__))

sys.path.append(blog_path)

from core.src import run

if __name__ == '__main__':
    run()

settings.py:

#存放静态变量

user_txt = r'C:\Users\lg\Desktop\study\Python\python对象\blog\db\user.txt'

src.py:

from conf import settings
from lib import common

status_dic = {
    "username":None,
    "status":False
}
flag = True

def login():
    i = 0
    with open(settings.user_txt,'r',encoding='utf-8') as f0:
        dic = {i.strip().split('|')[0]:i.strip().split('|')[1]   for i in f0}
    while i < 3:
        username = input("请输入登入名:").strip()
        passwd = input("请输入密码:").strip()
        if username in dic and passwd == dic[username]:
            print("登入成功!")
            status_dic['username'] = str(username)
            status_dic['status'] = True
            return True
        else:
            print("用户名或者密码错误!")
            i += 1

def register():
    with open(settings.user_txt,'r',encoding='utf-8') as f0:
        dic = {i.strip().split('|')[0]:i.strip().split('|')[1]   for i in f0}
    while 1:
        username = input("请输入你要注册的用户名:").strip()
        if not username.isalnum():
            print("输入包含非法字符,请重新注册。")
            continue
        if username in dic:    #判断用户名是否已经创建,没有则注册
            print("用户名已存在")
            continue
        passwd = input("请输入密码:").strip()
        if 6 <= len(passwd) <= 14:
            with open(settings.user_txt,'a',encoding='utf-8') as f1:
                f1.write(f'\n{username}|{passwd}')
            status_dic['username'] = str(username)
            status_dic['status'] = True
            print("注册成功。已帮您成功登入。")
            return  True
        else:
            print("密码长度不在范围内!")



@common.auth
def article():
    print(f"欢迎{status_dic['username']}来到评论页面")

@common.auth
def diary():
    print(f"欢迎{status_dic['username']}来到日记页面")

@common.auth
def comment():
    print(f"欢迎{status_dic['username']}来到评论页面")

@common.auth
def collect():
    print(f"欢迎{status_dic['username']}来到收藏页面")

def login_out():
    pass

def exit_program():
    pass



choice_dic = {
    1:login,
    2:register,
    3:article,
    4:diary,
    5:comment,
    6:collect,
    7:login_out,
    8: exit_program
}


def run():
    while flag:
        print("""
        欢迎来到博客园首页
        1.请登入
        2.请注册
        3.文章界面
        4.日记界面
        5.评论界面
        6.收藏界面
        7.注销
        8.退出程序
        """)
        input_num = input("请输入您要登入的序号:").strip()
        if input_num.isdigit():
            choice = int(input_num)
            if 1 <= choice <= 8:
                choice_dic[choice]()
            else:
                print("输入超出范围!")

        else:
            print("输入异常,包含非法字符!")

run()

common.py :

from core import src
def auth(func):
    def inner(*args,**kwargs):
        if src.status_dic['status']:
            ret = func(*args,**kwargs)
            return ret
        else:
            print("请先进行登入:")
            if src.login():
                ret = func(*args, **kwargs)
                return ret
    return inner
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值