1 Star 0 Fork 0

Python28/yl

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
博客园登录系统.py 4.50 KB
一键复制 编辑 原始数据 按行查看 历史
# 三.用代码模拟博客园系统
#
# 项目分析:
# 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("请正确输入")
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/old_boy_education_python_28/yl.git
git@gitee.com:old_boy_education_python_28/yl.git
old_boy_education_python_28
yl
yl
master

搜索帮助