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

猜你喜欢

转载自blog.csdn.net/qq_37369726/article/details/117280951
今日推荐