代码拉取完成,页面将自动刷新
# 三.用代码模拟博客园系统
#
# 项目分析:
# 1.首先程序启动,显示下面内容供用户选择:
#
# 1.请登录
# 2.请注册
# 3.进入文章页面
# 4.进入评论页面
# 5.进入日记页面
# 6.进入收藏页面
# 7.注销账号
# 8.退出整个程序
# 2.必须实现的功能:
#
# 1.注册功能要求:
# a.用户名、密码要记录在文件中。
# b.用户名要求:不能有特殊字符并且确保用户名唯一。
# c.密码要求:长度要在6~14个字符之间。
#
# 2.登录功能要求:
# a.用户输入用户名、密码进行登录验证。
# b.登录成功之后,才可以访问3 - 7选项,如果没有登录或者登录不成功时访问3 - 7选项,不允许访问,提示用户进行登录!
# c.超过三次登录还未成功,则退出整个程序。
#
# 3.进入文章页面要求:
# 提示欢迎xx进入文章页面。(xx是当前登录的用户名)
#
# 4.进入评论页面要求:
#
# 提示欢迎xx进入评论页面
#
# 5.进入日记页面要求:
# 提示欢迎xx进入日记页面。
#
# 6.进入收藏页面要求:
# 提示欢迎xx进入收藏页面。
#
# 7.注销账号要求:
# 不是退出整个程序,而是将已经登录的状态变成未登录状态(在次访问3~7选项时需要重新登录)
#
# 8.退出整个程序要求:
# 就是结束整个程序
import my_loger
import hashlib
import json
dengluzhuangtai = {
"flag":False,
"username":None
}
def ssl_pwd(user,pwd):
md5 = hashlib.md5(user.encode("utf-8"))
md5.update(pwd.encode("utf-8"))
md5_pwd = md5.hexdigest()
return md5_pwd
def wrapper(func):
def inner(*args,**kwargs):
if dengluzhuangtai["flag"]:
func(*args,**kwargs)
else:
signin()
return inner
def register():
user = input("请输入账户**不能有特殊字符**")
pwd = input("请输入密码**长度要在6~14个字符之间**")
if user.isalnum() and 6 <= len(pwd) <= 14:
with open("cekou",'a+',encoding="utf-8")as f:
f.seek(0)
for i in f:
user_dic = json.loads(i)
if user in user_dic:
print("账户以存在")
break
else:
f.write(json.dumps({user:ssl_pwd(user,pwd)})+"\n")
print("注册成功")
else:
print("输入有误")
def signin():
for i in range(3):
user = input("请输入账户**不能有特殊字符**")
pwd = input("请输入密码**长度要在6~14个字符之间**")
user_dic = ssl_pwd(user,pwd)
with open("cekou", 'a+', encoding="utf-8")as f:
f.seek(0)
for i in f:
user_dict = json.loads(i)
if user in user_dict:
md5_user_dic = user_dict[user]
if md5_user_dic == user_dic:
dengluzhuangtai["flag"] = True
dengluzhuangtai["username"] = user
print(f"{user}登录成功")
return True
else:
print("输入有误")
else:
print("输入错误")
@wrapper
def article(): #文章
# print(f"欢迎{dengluzhuangtai['username']}进入文章页")
my_loger.loggin().info(f"欢迎{dengluzhuangtai['username']}进入文章页")
@wrapper
def comment(): #评论
# print(f"欢迎{dengluzhuangtai['username']}进入评论页")
my_loger.loggin().info(f"欢迎{dengluzhuangtai['username']}进入评论页")
@wrapper
def diary(): #日记
# print(f"欢迎{dengluzhuangtai['username']}进入日记页")
my_loger.loggin().info(f"欢迎{dengluzhuangtai['username']}进入日记页")
@wrapper
def collection(): #收藏
# print(f"欢迎{dengluzhuangtai['username']}进入收藏页")
my_loger.loggin().info(f"欢迎{dengluzhuangtai['username']}进入收藏页")
@wrapper
def cancellation(): #注销
dengluzhuangtai["flag"] = False
dengluzhuangtai["username"] = None
print("已注销")
msg = '''
1.请登录
2.请注册
3.进入文章页面
4.进入评论页面
5.进入日记页面
6.进入收藏页面
7.注销账号
8.退出整个程序
'''
dic = {
"1":signin,
"2":register,
"3":article,
"4":comment,
"5":diary,
"6":collection,
"7":cancellation,
"8":exit
}
while True:
content=input(msg)
if content in dic:
dic[content]()
else:
print("请正确输入")
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。