单个文件:
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